控件添加到另一个控件时触发的事件

时间:2012-10-24 11:07:52

标签: c# winforms user-controls size parent

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

但是当用户控件初始化等时,Parent = null。 因为用户控件尚未添加到表单上。所以此时我无法获得Parent控件(即Form)。

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

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

我建议在代码隐藏中添加你需要这种特定控制的usercontrol,而不是移动事件处理程序。

如果您这样做,可以在您的usercontrol中添加父级,这可能会为您提供所需的信息。

var textBox = new TextBox {Parent = this};