c#如何在运行时添加contextMenuStrip项

本文关键字:添加 contextMenuStrip 运行时 | 更新日期: 2023-09-27 18:30:06

我确信这个问题的答案以前已经发布过了。请原谅我,因为我认为我只是没有想到正确的搜索字符串。

我有一个上下文菜单条,分配给我的拨号器托盘图标。其想法是让用户设置各种号码,从菜单中选择用户定义的号码并启动拨号。

因此菜单弹出PresetsSetup,&Exit。我希望"预设"菜单打开一个新的树,列出用户定义的号码。我还希望每次加载应用程序时都能从xml文件中填充它。

我的问题是,我不知道如何动态填充子菜单项并赋予它一个函数。

那么,在启动时,我如何将用户定义的数字添加到预设->(userNumber1, usernumber2, userNumber3)中,然后在单击时调用dial()函数呢?


所以我找到了如何添加到列表中。。。我现在觉得这样问很傻。对于任何想知道这一点的人,列表项都会有一个名称。在我的情况下,name属性是"presetsToolStripMenuItem"

因此,要添加一个项目,请将其命名为

presetsToolStripMenuItem.DropDownItems.Add(string text)

不可以继续。我现在正试图弄清楚如何将事件分配给新添加的函数。我确实找到

presetsToolStripMenuItem.DropDownItems.Add(string text, image, eventargs)

我正在与这个作斗争。也许我需要停下来,稍后再回来。如果有人能给我一个使用这条线路拨打function();的例子,我将不胜感激。

c#如何在运行时添加contextMenuStrip项

对于任何感兴趣的人,我找到了在运行时添加上下文菜单项并能够调用函数的解决方案。

如前所述,要将子菜单项添加到父类别,请使用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!");
    }