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

时间:2012-04-06 02:26:43

标签: c# winforms visual-studio-2010

我确信之前的答案已经发布了。原谅我,因为我认为我只是没有考虑正确的搜索字符串。

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

然后弹出菜单PresetsSetup和& Exit。我希望Presets菜单打开一个列出用户定义号码的新树。我还希望每次加载应用程序时都从xml文件填充。

我的问题是我不知道如何动态填充子菜单项并为其提供功能。

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


所以我找到了如何添加到列表中...我现在觉得很愚蠢。对于任何想知道那个的人,列表项都有一个名字。我的情况是name属性是“presetsToolStripMenuItem”

因此,要向其添加项目,请调用名称

presetsToolStripMenuItem.DropDownItems.Add(string text)

不继续前进。我现在陷入困境,试图找出如何为新添加的功能分配事件。我找到了

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

我正在努力解决这个问题。也许我需要停下来,稍后再回来。也许如果有人能够提供一个使用这一行来调用function();的例子,我将非常感激。

1 个答案:

答案 0 :(得分:4)

对于任何有兴趣的人,我想出了在运行时添加上下文菜单项并具有调用函数的能力的解决方案。

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