2011-09-26 7 views
0

在我的winforms項目中,一些窗體具有一組ContextMenuStrips(通過Visual Studio設計器定義)。查找在Windows窗體上定義的所有ContextMenuStrips(不一定在運行時附加)

其中一些上下文菜單條已附加到控件上,但其他上下文菜單條卻沒有。

現在我的問題是:我需要在運行時檢查所有ContextMenuStrips,不管它們是否連接。

我已經有一些代碼將遞歸地通過所有控件,並檢查ContextMenuStrip屬性,這工作正常....但我無法得到尚未分配給控件的ContextMenuStrips。

回答

2

將設置在表單上的ContextMenuStrip組件添加到「組件」集合中。你可以通過迭代找到它們:

For Each co As System.ComponentModel.Component In Me.components.Components 
     If TypeOf co Is ContextMenuStrip Then 
      Dim cms = DirectCast(co, ContextMenuStrip) 
      '' do something 
     End If 
    Next 
+0

非常感謝......但是現在我的下一個問題是嘗試訪問在另一個表單上定義的組件。有沒有簡單的方法來做到這一點,而無需修改原始表單?否則,我有相當數量的代碼來改變 – Quagmire

+1

這是一個不同的問題,之前被問過很多次。使用搜索框找到答案。 –

相關問題