using DevExpress.XtraEditors; namespace Yw.WinFrmUI.Phart { public partial class ValveChartCoordinateDlg : DevExpress.XtraEditors.XtraForm { public ValveChartCoordinateDlg() { InitializeComponent(); } public event Action OnChangedCoord = null; /// /// 坐标参数 /// public ValveCoordinate CoordinateParas { get => _coordinate; set => _coordinate = value; } private ValveCoordinate _coordinate = null; /// /// 绑定数据 /// /// 坐标参数 public void SetBindingData(ValveCoordinate coordinate) { if (coordinate == null) return; _coordinate = new ValveCoordinate(coordinate); this.textMinDispQ.EditValue = _coordinate.CoordMinQ; this.textGridNumberX.EditValue = _coordinate.GridNumberX; this.textGridNumberY.EditValue = _coordinate.GridNumberY; this.textCoordSpaceQ.EditValue = _coordinate.CoordSpaceQ; this.textStartLineNoH.EditValue = _coordinate.StartLineNoL; this.textEndLineNoH.EditValue = _coordinate.EndLineNoL; this.textMaxDispH.EditValue = (_coordinate.CoordMinL + _coordinate.EndLineNoL * _coordinate.CoordSpaceL); this.textCoordSpaceH.EditValue = _coordinate.CoordSpaceL; } 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.CoordMinQ = CoordMinQ; _coordinate.CoordSpaceQ = 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.StartLineNoL = start; _coordinate.EndLineNoL = end; _coordinate.CoordSpaceL = space; _coordinate.CoordMinL = maxValue - _coordinate.EndLineNoL * space; this.OnChangedCoord?.Invoke(_coordinate); this.DialogResult = System.Windows.Forms.DialogResult.OK; this.Close(); } } }