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