using DevExpress.XtraEditors; namespace Yw.WinFrmUI.Phart { public partial class ChartCoordinateDlg : DevExpress.XtraEditors.XtraForm { public ChartCoordinateDlg() { InitializeComponent(); } public event Action OnChangedCoord = null; /// /// 坐标参数 /// public PerformCoordinate CoordinateParas { get => _coordinate_paras; set => _coordinate_paras = value; } private PerformCoordinate _coordinate_paras = null; /// /// 绑定数据 /// /// 坐标参数 public void SetBindingData(PerformCoordinate coordinate, bool onlyQH = false) { if (coordinate == null) return; if (onlyQH) { this.groupBoxE.Enabled = false; this.groupBoxP.Enabled = false; } _coordinate_paras = new PerformCoordinate(coordinate); this.textMinDispQ.EditValue = _coordinate_paras.CoordMinQ; this.textGridNumberX.EditValue = _coordinate_paras.GridNumberX; this.textGridNumberY.EditValue = _coordinate_paras.GridNumberY; this.textCoordSpaceQ.EditValue = _coordinate_paras.CoordSpaceQ; this.textStartLineNoH.EditValue = _coordinate_paras.StartLineNoH; this.textEndLineNoH.EditValue = _coordinate_paras.EndLineNoH; this.textMaxDispH.EditValue = (_coordinate_paras.CoordMinH + _coordinate_paras.EndLineNoH * _coordinate_paras.CoordSpaceH); this.textCoordSpaceH.EditValue = _coordinate_paras.CoordSpaceH; this.textEndLineNoE.EditValue = _coordinate_paras.EndLineNoE; this.textStartLineNoE.EditValue = _coordinate_paras.StartLineNoE; this.textCoordSpaceE.EditValue = _coordinate_paras.CoordSpaceE; this.textMaxDispE.EditValue = (_coordinate_paras.CoordMinE + _coordinate_paras.EndLineNoE * _coordinate_paras.CoordSpaceE); double minP = _coordinate_paras.CoordMinP + _coordinate_paras.StartLineNoP * _coordinate_paras.CoordSpaceP; if (minP < 0.001) minP = 0; this.textMinDispP.EditValue = minP; this.textStartLineNoP.EditValue = _coordinate_paras.StartLineNoP; this.textEndLineNoP.EditValue = _coordinate_paras.EndLineNoP; this.textCoordSpaceP.EditValue = _coordinate_paras.CoordSpaceP; } private void btnSet_Click(object sender, EventArgs e) { if (_coordinate_paras == 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_paras.GridNumberX = num; if (!int.TryParse(this.textGridNumberY.Text, out num)) { XtraMessageBox.Show("扬程刻度数请输入合理值"); return; } _coordinate_paras.GridNumberY = num; double.TryParse(this.textMinDispQ.Text, out double CoordMinQ); _coordinate_paras.CoordMinQ = CoordMinQ; _coordinate_paras.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_paras.StartLineNoH = start; _coordinate_paras.EndLineNoH = end; _coordinate_paras.CoordSpaceH = space; _coordinate_paras.CoordMinH = maxValue - _coordinate_paras.EndLineNoH * space; if (this.groupBoxE.Enabled) { if (!int.TryParse(this.textEndLineNoE.Text, out end)) { XtraMessageBox.Show("效率刻度数请输入合理值"); return; } if (!int.TryParse(this.textStartLineNoE.Text, out start)) { XtraMessageBox.Show("效率刻度数请输入合理值"); return; } if (start >= end - 1) { XtraMessageBox.Show("效率刻度设置不合理"); return; } if (!double.TryParse(this.textCoordSpaceE.Text, out space)) { XtraMessageBox.Show("请输入合理值"); return; } if (space < 0.1) { XtraMessageBox.Show("刻度值过小,请重新调整"); return; } if (!double.TryParse(this.textMaxDispE.Text, out maxValue)) { XtraMessageBox.Show("请输入合理值"); return; } _coordinate_paras.CoordSpaceE = space; _coordinate_paras.StartLineNoE = start; _coordinate_paras.EndLineNoE = end; _coordinate_paras.CoordMinE = maxValue - _coordinate_paras.EndLineNoE * _coordinate_paras.CoordSpaceE; } if (this.groupBoxP.Enabled) { if (!int.TryParse(this.textStartLineNoP.Text, out start)) { XtraMessageBox.Show("功率刻度数请输入合理值"); return; } if (!int.TryParse(this.textEndLineNoP.Text, out end)) { XtraMessageBox.Show("功率刻度数请输入合理值"); return; } if (start >= end - 1) { XtraMessageBox.Show("功率刻度设置不合理"); return; } if (!double.TryParse(this.textCoordSpaceP.Text, out space)) { XtraMessageBox.Show("请输入合理值"); return; } if (space < 0.01) { XtraMessageBox.Show("刻度值过小,请重新调整"); return; } if (!double.TryParse(this.textMinDispP.Text, out double minValue)) { XtraMessageBox.Show("请输入合理值"); return; } _coordinate_paras.StartLineNoP = start; _coordinate_paras.EndLineNoP = end; _coordinate_paras.CoordSpaceP = space; _coordinate_paras.CoordMinP = minValue - _coordinate_paras.StartLineNoP * _coordinate_paras.CoordSpaceP; } this.OnChangedCoord?.Invoke(_coordinate_paras); this.DialogResult = System.Windows.Forms.DialogResult.OK; this.Close(); } } }