在程序中添加菜单项后如何创建点击事件?

5

截图:

在这里输入图片描述

我用以下代码填充了上面截图中的菜单,但是愚蠢的我无法弄清楚如何在每个子项上创建点击事件,因为它们没有属性名称? :S 我的意图是点击,“Do and Do”,然后使用Process.Start(filename);打开文件。请理解我,我是编程新手。:| 非常感谢!

private void loadViewTemplates(string path)
{
    foreach (string file in Directory.GetFiles(path, "*.txt"))
    {
        ToolStripItem subItem = new ToolStripMenuItem();
        subItem.Text = Path.GetFileNameWithoutExtension(file);
        viewTemplatesToolStripMenuItem.DropDownItems.Add(subItem);
    }
}
2个回答

10

尝试桩测试(click procedure)。发送者(sender)将是被单击的菜单项:

private void MenuClicked(object sender, EventArgs e) {
  MessageBox.Show("Clicked on " + ((ToolStripMenuItem)sender).Text);
}

然后为每个菜单绑定点击事件:

ToolStripItem subItem = new ToolStripMenuItem();
subItem.Click += MenuClicked;
subItem.Text = Path.GetFileNameWithoutExtension(file);
viewTemplatesToolStripMenuItem.DropDownItems.Add(subItem);

2

我不太擅长Windows表单,因此可能有更广泛接受的方法来完成这个任务,但您想要做的是添加一个事件处理程序到“点击”事件。像这样:

subItem.Click += new EventHandler(subItem_Click);

其中 subItem_Click 的代码应该是这样的:

private void subItem_Click(object sender, EventArgs e)
{
    //click logic goes here
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接