当用户控件添加到Form
时是否会触发事件?
我需要这个来获得用户控件的Parent
控件的大小。
但是当用户控件初始化等时,Parent = null
。
因为用户控件尚未添加到表单上。所以此时我无法获得Parent控件(即Form)。
所以我之后必须重新调整用户控件的大小。
答案 0 :(得分:1)
您可以尝试使用Control.ParentChanged事件。每次更改控件的父级时都会触发,因此您可以检查父级是否是表单,然后继续您想要的反应。
或者,您可以使用Control.ControlAdded事件。
答案 1 :(得分:1)
所有控件都继承了ParentChanged事件。在事件处理程序方法中,您可以检查Parent属性,该属性将在该点设置为新父级。
答案 2 :(得分:1)
您在表单上有ControlAdded事件,它在InitializeComponent()中初始化。大多数情况下,此事件是在添加组件后正确放置的。如果在将UserControl添加到表单之前放置它,则每次添加组件时都会触发事件。
我建议在代码隐藏中添加你需要这种特定控制的usercontrol,而不是移动事件处理程序。
如果您这样做,可以在您的usercontrol中添加父级,这可能会为您提供所需的信息。
var textBox = new TextBox {Parent = this};