using DevExpress.XtraEditors; namespace Yw.WinFrmUI.Phart { public partial class ValveChartCoordinateDlg : DevExpress.XtraEditors.XtraForm { public ValveChartCoordinateDlg() { InitializeComponent(); } public event Action OnChangedCoord = null; /// /// 坐标参数 /// public UniversalCoordinate CoordinateParas { get => _coordinate; set => _coordinate = value; } private UniversalCoordinate _coordinate = null; /// /// 绑定数据 /// /// 坐标参数 public void SetBindingData(UniversalCoordinate coordinate) { if (coordinate == null) return; _coordinate = new UniversalCoordinate(coordinate); this.textMinDispQ.EditValue = _coordinate.CoordMinX; this.textGridNumberX.EditValue = _coordinate.GridNumberX; this.textGridNumberY.EditValue = _coordinate.GridNumberY; this.textCoordSpaceQ.EditValue = _coordinate.CoordSpaceX; this.textStartLineNoH.EditValue = _coordinate.StartLineNoY; this.textEndLineNoH.EditValue = _coordinate.EndLineNoY; this.textMaxDispH.EditValue = (_coordinate.CoordMinY + _coordinate.EndLineNoY * _coordinate.CoordSpaceY); this.textCoordSpaceH.EditValue = _coordinate.CoordSpaceY; } private void btnSet_Click(object sender, EventArgs e) { if (_coordinate == null) return; if (!double.TryParse(this.textCoordSpaceQ.Text, out double space)) { XtraMessageBox.Show("请输入合理值"); return; } if (space < 0.1) { XtraMessageBox.Show("刻度值过小,请重新调整"); return; } if (!int.TryParse(this.textGridNumberX.Text, out int num)) { XtraMessageBox.Show("水损刻度数请输入合理值"); return; } _coordinate.GridNumberX = num; if (!int.TryParse(this.textGridNumberY.Text, out num)) { XtraMessageBox.Show("水损刻度数请输入合理值"); return; } _coordinate.GridNumberY = num; double.TryParse(this.textMinDispQ.Text, out double CoordMinQ); _coordinate.CoordMinX = CoordMinQ; _coordinate.CoordSpaceX = space; if (!int.TryParse(this.textStartLineNoH.Text, out int start)) { XtraMessageBox.Show("水损刻度数请输入合理值"); return; } if (!int.TryParse(this.textEndLineNoH.Text, out int end)) { XtraMessageBox.Show("水损刻度数请输入合理值"); return; } if (start >= end - 1) { XtraMessageBox.Show("水损刻度设置不合理"); return; } if (!double.TryParse(this.textCoordSpaceH.Text, out space)) { XtraMessageBox.Show("请输入合理值"); return; } if (space < 0.1) { XtraMessageBox.Show("刻度值过小,请重新调整"); return; } if (!double.TryParse(this.textMaxDispH.Text, out double maxValue)) { XtraMessageBox.Show("请输入合理值"); return; } _coordinate.StartLineNoY = start; _coordinate.EndLineNoY = end; _coordinate.CoordSpaceY = space; _coordinate.CoordMinY = maxValue - _coordinate.EndLineNoY * space; this.OnChangedCoord?.Invoke(_coordinate); this.DialogResult = System.Windows.Forms.DialogResult.OK; this.Close(); } } }