Ram*_*Ram 9 .net resize winforms
我正在写一个UserControl.我想在调整大小时绘制用户控件.我无法找到任何与Windows窗体的"ResizeEnd"等效的事件.
用户控件是否有任何等效事件?
请注意,在这种情况下,用户控件的父控件本身就是UserControl,因此我无法将其(父用户控件)转换为表单.当我使用框架时,我无法访问将显示此用户控件的表单.
没有等价物.表单具有模态大小调整循环,在用户单击表单的边缘或角落时启动.子控件无法以这种方式调整大小,只能看到对其Size属性的更改.
通过向用户控件添加Sizing属性来解决此问题.表单可以轻松地从其OnResizeBegin/End()覆盖中分配它.在UC的Load事件中的Parent属性之后,直到您找到Form也是可能的:
public bool Resizing { get; set; }
private void UserControl1_Load(object sender, EventArgs e) {
if (!this.DesignMode) {
var parent = this.Parent;
while (!(parent is Form)) parent = parent.Parent;
var form = parent as Form;
form.ResizeBegin += (s, ea) => this.Resizing = true;
form.ResizeEnd += (s, ea) => this.Resizing = false;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4061 次 |
| 最近记录: |