我有一個表單。這種形式有一個用戶控制。這個用戶控件有一個面板和一個上下文菜單。上下文菜單未附加到面板。還有其他控件是動態創建並添加到此面板的。其中一個控件是一個按鈕。當您單擊此按鈕時,我將contextmenustrip屬性設置爲我的上下文菜單。在控件集合中找不到上下文菜單
我的問題是,我需要閱讀該上下文菜單中的項目,然後纔有機會將上下文菜單附加到按鈕。
每次加載表單時,我都遍歷表單的所有子控件。如果一個控件有孩子,我遍歷這些,等等......我似乎無法得到未分配可以說的上下文菜單。它沒有附加到任何控件上,所以它似乎不是表單上任何控件的子控件。
myConectMenu永遠不會添加到用戶控制像this.Controls.Add(myConectMenu)。這個上下文菜單如何不能嵌套在表單控件集合中?我怎樣才能得到該上下文菜單?
這裏是設計師代碼:
private System.Windows.Forms.ContextMenuStrip myContextMenu;
void InitializeComponent()
{
this.myContextMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
this.myContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.myToolStripMenuItem1,
this.myToolStripMenuItem2});
this.myContextMenu.Name = "myContextMenu";
this.myContextMenu.Size = new System.Drawing.Size(158, 92);
}
更新 控制迭代發生在一個基類,所有的形式在我的應用程序獲得。
有一個myContextMenu添加到的私人組件對象。我想這是在那裏,所以你可以看到設計視圖中的上下文菜單,當它沒有連接到控件。也許我可以利用這個?
private System.ComponentModel.IContainer components = null;
this.myContextMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
你能解釋一下你想用ContextMenuStrip做什麼嗎? – 2009-07-01 19:13:26
迭代其子控件並禁用用戶無權訪問的項目。 – 2009-07-01 19:45:32