2012-10-24 49 views
0

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

但是,当用户控制得到初始化等,Parent = null。 由于用户控件尚未添加到窗体上。所以我不能得到父控制(这是表单)在这一点上。

所以我不得不在事后重新调整用户控件的大小。

回答

1

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

1

您可以尝试使用Control.ParentChanged事件。只要控件的父对象发生更改,它就会触发,因此您可以检查父对象是否为表单,然后继续如何作出反应。

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

+0

感谢球员们,那就做到了! – Yustme

1

您在窗体上有ControlAdded事件,在InitializeComponent()中进行初始化。大多数情况下,这个事件是在添加组件之后被放置的。如果在将UserControl添加到表单之前将其放置,则每次添加组件时都会触发事件。

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

如果你这样做,你可以添加一个家长到你的usercontrol,它可能会给你你需要的信息。

var textBox = new TextBox {Parent = this}; 
相关问题