c#如何在运行时添加contextMenuStrip项
本文关键字:添加 contextMenuStrip 运行时 | 更新日期: 2023-09-27 18:30:06
我确信这个问题的答案以前已经发布过了。请原谅我,因为我认为我只是没有想到正确的搜索字符串。
我有一个上下文菜单条,分配给我的拨号器托盘图标。其想法是让用户设置各种号码,从菜单中选择用户定义的号码并启动拨号。
因此菜单弹出Presets
,Setup
,&Exit
。我希望"预设"菜单打开一个新的树,列出用户定义的号码。我还希望每次加载应用程序时都能从xml文件中填充它。
我的问题是,我不知道如何动态填充子菜单项并赋予它一个函数。
那么,在启动时,我如何将用户定义的数字添加到预设->(userNumber1, usernumber2, userNumber3
)中,然后在单击时调用dial()
函数呢?
所以我找到了如何添加到列表中。。。我现在觉得这样问很傻。对于任何想知道这一点的人,列表项都会有一个名称。在我的情况下,name属性是"presetsToolStripMenuItem"
因此,要添加一个项目,请将其命名为
presetsToolStripMenuItem.DropDownItems.Add(string text)
不可以继续。我现在正试图弄清楚如何将事件分配给新添加的函数。我确实找到
presetsToolStripMenuItem.DropDownItems.Add(string text, image, eventargs)
我正在与这个作斗争。也许我需要停下来,稍后再回来。如果有人能给我一个使用这条线路拨打function();
的例子,我将不胜感激。
对于任何感兴趣的人,我找到了在运行时添加上下文菜单项并能够调用函数的解决方案。
如前所述,要将子菜单项添加到父类别,请使用parent.name
。所以在我的情况下,预设菜单项名称是"presetsToolStripMenuItem"
为了添加函数,我使用了3参数方法。
ToolStripMenuItem.DropdownItems.Add("string name", image, eventargs);
所以我的代码看起来是这样的:
presetsToolStripMenuItem.DropDownItems.Add("added2", null, disp);
void disp(object sender, EventArgs e)
{
MessageBox.Show("It works!");
}