tangxu
2025-01-13 4f7cb65b079d88d5a829688b24d26d5145c5df47
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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
using System;
using System.ComponentModel;
using System.Drawing;
 
namespace Microsoft.Windows.Forms
{
    partial class UIForm
    {
        /// <summary>
        /// 获取或设置父控件
        /// </summary>
        [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public IUIControl UIParent
        {
            get
            {
                return null;
            }
            set
            {
                throw new NotSupportedException("不允许为 UIWindow 设置 Parent");
            }
        }
 
        private UIControl.UIControlCollection m_UIControls;
        /// <summary>
        /// 获取子控件集合
        /// </summary>
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
        [Editor(typeof(DPumpHydr.WinFrmUI.WenSkin.Design.Editor.DuiWenCollectionEditor), typeof(System.Drawing.Design.UITypeEditor))]
        public UIControl.UIControlCollection UIControls
        {
            get
            {
                this.CheckDisposed();
                if (this.m_UIControls == null)
                    this.m_UIControls = new UIControl.UIControlCollection(this);
                return this.m_UIControls;
            }
        }
 
        private int m_LayoutSuspendCount;
        /// <summary>
        /// 获取布局操作是否被挂起
        /// </summary>
        public bool LayoutSuspended
        {
            get
            {
                return this.m_LayoutSuspendCount != 0;
            }
        }
 
        /// <summary>
        /// 挂起布局操作
        /// </summary>
        public new void SuspendLayout()
        {
            this.m_LayoutSuspendCount++;
            base.SuspendLayout();
        }
 
        /// <summary>
        /// 恢复挂起的布局操作
        /// </summary>
        public new void ResumeLayout()
        {
            this.ResumeLayout(false);
        }
 
        /// <summary>
        /// 恢复挂起的布局操作,可选择是否强制执行布局
        /// </summary>
        /// <param name="performLayout">如果强制则为 true, 否则为 false</param>
        public new void ResumeLayout(bool performLayout)
        {
            this.m_LayoutSuspendCount--;
            this.DoLayoutCore(performLayout);
            base.ResumeLayout(performLayout);
        }
 
        /// <summary>
        /// 如果未挂起布局操作则重新计算子控件布局
        /// </summary>
        public void DoLayout()
        {
            this.DoLayoutCore(false);
        }
 
        /// <summary>
        /// 重新计算子控件布局,可选择是否强制执行布局
        /// </summary>
        /// <param name="performLayout">如果强制则为 true, 否则为 false</param>
        protected void DoLayoutCore(bool performLayout)
        {
            if (performLayout || !this.LayoutSuspended)
                UIControl.DoLayoutInternal(this);
        }
 
        /// <summary>
        /// 将所在 Win32 控件坐标系的点转换为控件坐标系的点
        /// </summary>
        /// <param name="p">点</param>
        /// <returns>转换后的点</returns>
        public Point PointToUIControl(Point p)
        {
            return p;
        }
 
        /// <summary>
        /// 将控件坐标系的点转换为所在 Win32 控件坐标系的点
        /// </summary>
        /// <param name="p">点</param>
        /// <returns>转换后的点</returns>
        public Point PointToUIWindow(Point p)
        {
            return p;
        }
 
        /// <summary>
        /// 将所在 Win32 控件坐标系的矩形转换为控件坐标系的矩形
        /// </summary>
        /// <param name="r">矩形</param>
        /// <returns>转换后的矩形</returns>
        public Rectangle RectangleToUIControl(Rectangle r)
        {
            return r;
        }
 
        /// <summary>
        /// 将控件坐标系的矩形转换为所在 Win32 控件坐标系的矩形
        /// </summary>
        /// <param name="r">矩形</param>
        /// <returns>转换后的矩形</returns>
        public Rectangle RectangleToUIWindow(Rectangle r)
        {
            return r;
        }
 
        /// <summary>
        /// 查找所在的 Win32 控件
        /// </summary>
        /// <returns>所在的 Win32 控件</returns>
        public IUIWindow FindUIWindow()
        {
            return this;
        }
 
        /// <summary>
        /// 根据坐标查找子控件
        /// </summary>
        /// <param name="p">坐标</param>
        /// <returns>子控件</returns>
        public UIControl FindUIChild(Point p)
        {
            return UIControl.FindUIChildInternal(this, p);
        }
 
        /// <summary>
        /// 根据名称查找子控件
        /// </summary>
        /// <param name="name">名称</param>
        /// <returns>子控件</returns>
        public UIControl FindUIChild(string name)
        {
            return UIControl.FindUIChildInternal(this, name);
        }
 
        /// <summary>
        /// 大小改变,重新计算布局
        /// </summary>
        /// <param name="e">计算布局</param>
        protected override void OnSizeChanged(EventArgs e)
        {
            base.OnSizeChanged(e);
            this.DoLayout();
        }
    }
}