當用戶控件添加到Form
時,是否有事件被觸發? 我需要這個來獲得用戶控件的Parent
控件的大小。將控件添加到另一個控件時觸發的事件
但是,當用戶控制得到初始化等,Parent = null
。 由於用戶控件尚未添加到窗體上。所以我不能得到父控制(這是表單)在這一點上。
所以我不得不在事後重新調整用戶控件的大小。
當用戶控件添加到Form
時,是否有事件被觸發? 我需要這個來獲得用戶控件的Parent
控件的大小。將控件添加到另一個控件時觸發的事件
但是,當用戶控制得到初始化等,Parent = null
。 由於用戶控件尚未添加到窗體上。所以我不能得到父控制(這是表單)在這一點上。
所以我不得不在事後重新調整用戶控件的大小。
有一個ParentChanged事件,所有控件繼承。在事件處理程序方法中,您可以檢查Parent屬性,該屬性將在該位置設置爲新父項。
您可以嘗試使用Control.ParentChanged事件。只要控件的父對象發生更改,它就會觸發,因此您可以檢查父對象是否爲表單,然後繼續如何作出反應。
或者,您可以使用Control.ControlAdded事件。
您在窗體上有ControlAdded事件,在InitializeComponent()中進行初始化。大多數情況下,這個事件是在添加組件之後被放置的。如果在將UserControl添加到表單之前將其放置,則每次添加組件時都會觸發事件。
我建議在你的代碼隱藏中添加你需要的usercontrol這樣的特定控件,而不是移動事件處理程序。
如果你這樣做,你可以添加一個家長到你的usercontrol,它可能會給你你需要的信息。
var textBox = new TextBox {Parent = this};
感謝球員們,那就做到了! – Yustme