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);
    }
}
4

2 回答 2

10

尝试取消点击过程。发件人将是被点击的菜单项:

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);
于 2012-08-20T23:49:48.040 回答
2

我并没有真正做 windows 窗体,所以可能有一个更普遍接受的方法来做到这一点,但你在这里想要做的是向“点击”事件添加一个事件处理程序。像这样:

subItem.Click += new EventHandler(subItem_Click);

subItem_Click看起来像这样:

private void subItem_Click(object sender, EventArgs e)
{
    //click logic goes here
}
于 2012-08-20T23:52:22.063 回答