Shuxia Ning
2024-12-20 1bf6b7a300e21e9b8996f9ebeeb55a1eccda7a02
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
using DevExpress.XtraEditors;
 
namespace Yw.WinFrmUI.Phart
{
    public partial class ValveChartCoordinateDlg : DevExpress.XtraEditors.XtraForm
    {
        public ValveChartCoordinateDlg()
        {
            InitializeComponent();
        }
 
        public event Action<UniversalCoordinate> OnChangedCoord = null;
 
        /// <summary>
        /// 坐标参数
        /// </summary>
        public UniversalCoordinate CoordinateParas
        {
            get => _coordinate;
            set => _coordinate = value;
        }
        private UniversalCoordinate _coordinate = null;
 
 
 
        /// <summary>
        /// 绑定数据
        /// </summary>
        /// <param name="coordinate">坐标参数</param>
        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();
 
        }
 
 
 
    }
}