0

将用户控件添加到 时是否会触发事件Form?我需要这个来获取Parent用户控件的控件大小。

但是当用户控件被初始化等时,Parent = null. 因为尚未将用户控件添加到窗体中。所以我现在无法获得父控件(即表单)。

所以我必须在之后重新调整用户控件的大小。

4

3 回答 3

1

您可以尝试使用Control.ParentChanged事件。这将在控件的父级更改时触发,因此您可以检查父级是否是表单,然后继续您想要的反应方式。

或者,您可以使用Control.ControlAdded事件。

于 2012-10-24T11:18:05.770 回答
1

有一个所有控件都继承的ParentChanged事件。在事件处理程序方法中,您可以检查 Parent 属性,该属性将在此时设置为新的父级。

于 2012-10-24T11:18:06.817 回答
1

您在表单上有 ControlAdded 事件,该事件在您的 InitializeComponent() 中初始化。大多数情况下,此事件应在添加组件之后放置。如果您在将 UserControls 添加到表单之前放置​​它,您将在每次添加组件时触发事件。

我建议在代码隐藏中添加您需要此类特定控制的用户控件,而不是移动事件处理程序。

如果您这样做,您可以将父级添加到您的用户控件,这可能会为您提供所需的信息。

var textBox = new TextBox {Parent = this};
于 2012-10-24T11:24:32.203 回答