using DevExpress.XtraEditors; using System; namespace IStation.WinFrmUI.Basic { public partial class SetSingleCoordLxpPDlg : DevExpress.XtraEditors.XtraForm { public event ChangeLxpCoordHandler OnChangedCoord = null; private Eventech.Model.UnitP lastUnitP = Eventech.Model.UnitP.KW;//单位 private Eventech.Model.LxpCoordinateParas CoordinateParas = null; public SetSingleCoordLxpPDlg() { InitializeComponent(); } private void LoadWindow(object sender, EventArgs e) { } public void SetBindingData(Eventech.Model.LxpCoordinateParas coord, Eventech.Model.UnitP unit) { this.CoordinateParas = coord; if (CoordinateParas == null) return; comboBoxType.Properties.Items.Add("刻度数,最大最小值"); comboBoxType.Properties.Items.Add("刻度数,间隔量,最小值"); comboBoxType.Properties.Items.Add("间隔量,最大最小值"); comboBoxType.SelectedIndex = 2; labelMin.Text = "最小功率"; labelMax.Text = "最大功率"; checkBox1.Text = "从底部开始"; textStart.Text = Eventech.Common.UnitPHelper.fromKW(this.lastUnitP, CoordinateParas.StartLineNoP).ToString(); textNumber.Text = (CoordinateParas.EndLineNoP - CoordinateParas.StartLineNoP + 1).ToString(); textMin.Text = Math.Round(Eventech.Common.UnitPHelper.fromKW(this.lastUnitP, (CoordinateParas.CoordMinP + CoordinateParas.StartLineNoP * CoordinateParas.CoordSpaceP)), 3).ToString(); textMax.Text = Math.Round(Eventech.Common.UnitPHelper.fromKW(this.lastUnitP, (CoordinateParas.CoordMinP + CoordinateParas.EndLineNoP * CoordinateParas.CoordSpaceP)), 3).ToString(); textSpace.Text = CoordinateParas.CoordSpaceP.ToString(); } private void btnClose_Click(object sender, EventArgs e) { this.Close(); } private void btnSet_Click(object sender, EventArgs e) { if (OnChangedCoord == null || CoordinateParas == null) return; double space = 0; int num = 0; int start = 0; double minValue = 0; double maxValue = 0; if (!double.TryParse(textSpace.Text, out space)) { XtraMessageBox.Show("请输入合理值"); return; } if (space < 0.001) { XtraMessageBox.Show("请输入合理值"); return; } if (!int.TryParse(textNumber.Text, out num)) { XtraMessageBox.Show("刻度数请输入合理值"); return; } if (num < 3) { XtraMessageBox.Show("请输入合理值"); return; } if (!int.TryParse(textStart.Text, out start)) { XtraMessageBox.Show("刻度数请输入合理值"); return; } if (!double.TryParse(textMin.Text, out minValue)) { XtraMessageBox.Show("请输入合理值"); return; } if (!double.TryParse(textMax.Text, out maxValue)) { XtraMessageBox.Show("请输入合理值"); return; } if (maxValue < minValue) { XtraMessageBox.Show("请输入合理值"); return; } switch (comboBoxType.Text) { case "刻度数,最大最小值": space = Math.Round((maxValue - minValue + 0.001) / (num - 1), 3); textSpace.Text = space.ToString(); break; case "刻度数,间隔量,最小值": maxValue = minValue + space * (num - 1); textMax.Text = maxValue.ToString(); break; case "间隔量,最大最小值": num = (int)((maxValue - minValue + 0.001) / space) + 1; textNumber.Text = num.ToString(); break; } CoordinateParas.StartLineNoP = start; CoordinateParas.EndLineNoP = start + num - 1; CoordinateParas.CoordSpaceP = Eventech.Common.UnitPHelper.toKW(this.lastUnitP, space); CoordinateParas.CoordMinP = Eventech.Common.UnitPHelper.toKW(this.lastUnitP, minValue - CoordinateParas.StartLineNoP * CoordinateParas.CoordSpaceP); // OnChangedCoord(this, new LxpCoordEventArgs(CoordinateParas)); } private void checkBox1_CheckedChanged(object sender, EventArgs e) { textStart.Enabled = !checkBox1.Checked; if (checkBox1.Checked) { textStart.Text = "0"; } } private void comboBoxType_SelectedIndexChanged(object sender, EventArgs e) { switch (comboBoxType.Text) { case "刻度数,最大最小值": labelNumber.Visible = true; textNumber.Visible = true; labelMin.Visible = true; textMin.Visible = true; labelMax.Visible = true; textMax.Visible = true; labelSpace.Visible = false; textSpace.Visible = false; break; case "刻度数,间隔量,最小值": labelNumber.Visible = true; textNumber.Visible = true; labelMin.Visible = true; textMin.Visible = true; labelMax.Visible = false; textMax.Visible = false; labelSpace.Visible = true; textSpace.Visible = true; break; case "间隔量,最大最小值": labelNumber.Visible = false; textNumber.Visible = false; labelMin.Visible = true; textMin.Visible = true; labelMax.Visible = true; textMax.Visible = true; labelSpace.Visible = true; textSpace.Visible = true; break; } } } }