在C#中动态创建下拉菜单

时间:2015-02-20 21:34:57

标签: c# menu

我使用从某个文件中获取的文本为我的上下文菜单项创建了一个下拉菜单。

问题是,我不知道如何为这些菜单编写代码部分,我的意思是菜单显示真实,但我不知道如何编写代码以便在点击后执行某些操作。

是的,有人可以帮我吗? TNX。

更多信息:

我有一个右键单击的上下文菜单。在此菜单中有一个项目,其中包含一个下拉菜单,例如当您单击文件 - >打开时,有2个选项打开视频/打开音乐。所以,我在代码中创建了下拉菜单,我还没有在视觉上完成它,所以没有例如" Private void openmusic_click"让我编写我的代码。我想知道我应该在哪里进行所需的编码

以下是创建下拉菜单的代码:

if (next > 0)
{
          string tex = playlists.Substring(here + 1, next - 1);
          Playlist_select.DropDownItems.Add(tex);
}
else
{
         string tex1 = playlists.Substring(here + 1, playlists.Length - here - 1);
         Playlist_select.DropDownItems.Add(tex1);
}

2 个答案:

答案 0 :(得分:1)

如果您使用的是contextMenuStrip,则可以使用多个事件。请参阅一些Microsoft文档的评论中发布的Sine Nomen链接。

例如,要在运行时添加事件处理程序:

private void foo(object sender, EventArgs e) {
    //The function to call when an item is clicked.
}

private void Form1_Load(object sender, EventArgs e) {
    contextMenuStrip1.MouseClick += foo; // This adds foo as an EventHandler
}

答案 1 :(得分:0)

不是直接将文本作为项添加到DropDownItems属性中,而是应该实例化一个项目对象,例如ToolStripMenuItem:

ToolStripItem item = new ToolStripMenuItem();
item.text = playlists.Substring(here + 1, next - 1);

然后您可以在该项目上添加点击处理程序

item.Click +=item_Click;

这将是:

    private void item_Click(object sender, EventArgs e)
    {

        // Your event processing logic here

    }