我有一个表单。这种形式有一个用户控制。这个用户控件有一个面板和一个上下文菜单。上下文菜单未附加到面板。还有其他控件是动态创建并添加到此面板的。其中一个控件是一个按钮。当您单击此按钮时,我将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