我的項目是用c#編寫的。我有我設計的用戶控件。在那個用戶控件中,我希望能夠通過控件所在的窗體來查看窗體上的所有其他控件。在用戶控件中檢查包含表單的反射。 C#
我該如何去做這件事?我用反射去通過DLL的,但不是這樣的事情。
總結:我的用戶控件放置在一個窗體上,我希望我的用戶控件能夠通過窗體上的所有其他控件進行onLoad查看(有時我想將其限制在同一個容器中,而不是整個窗體,但是我可以計算出以後)。
我也打開想法,不使用反射,如果任何人有任何。
謝謝!
編輯:
所以,我想簡單地翻翻父控件和什麼IM沒有工作要做,這是我的錯了嚴重解釋它上面。
讓我再提供一些細節。
我知道,在主窗體上會出現一個ContainerListView控制,現在當你添加列的創建的containerlistview ContainerListviewColumnHeaders。它們的聲明顯示在表單的initalizeComponent()中。我想要做的是在我的用戶控件中我想查看錶單並找到所有的ContainerListViewColumnHeader,但是因爲它們不是'Control'類型(它們是'Component'),所以它們在前面的方法中不顯示。 詢問Containerlistview不是一個選項。
難道你不能簡單地通過'Parent'屬性檢索父窗體(可能需要訂閱'ParentChanged'事件),然後訪問此窗體的'Controls'集合? – stakx 2010-02-11 20:37:59
關於您在編輯中提供的其他信息:AFAIK,表單不一定具有對Forms Designer中添加的所有_components_的引用。一些組件是通過引用表單來初始化的,但不是相反的。 – stakx 2010-02-11 20:59:51
因此,使用由Reed提供的方法我認爲你可以找到ContainerListView控件,它很可能具有像「Columns」這樣的屬性,並且每一列都會有類似「Header」的內容。只是一個假設。 – 2010-02-11 21:19:36