因此,我根据一个文件在favsToolStripMenuItem.DropDown (ToolStripMenuItem)中创建了一些项:
using (StreamReader reader = new StreamReader("text.ini"))
{
while (true)
{
string line = reader.ReadLine();
if (line== null)
break;
favsToolStripMenuItem.DropDown.Items.Add(line);
}
}但是如何为它们添加单击事件呢?我想要一个基于项目名称(文本)的单击事件。
发布于 2020-01-27 23:57:43
将单击方法存根:
private void DropDown_Click(object sender, EventArgs e) {
ToolStripItem tsi = sender as ToolStripItem;
if (tsi != null) {
MessageBox.Show(tsi.Text);
}
}然后使用包含事件处理程序的Add参数:
favsToolStripMenuItem.DropDown.Items.Add(line, null, DropDown_Click);发布于 2020-01-28 00:09:03
首先,您需要在创建每个菜单项时分配事件。
using (StreamReader reader = new StreamReader("text.ini"))
{
while (true)
{
string line = reader.ReadLine();
if (line== null)
break;
ToolStripMenuItem menu = new ToolStripMenuItem(line);
menu.Click += new EventHandler(menu_Click);
favsToolStripMenuItem.DropDown.Items.Add(menu);
}
}现在,每个子菜单项都有自己的事件可在单击时触发。这是如何根据项的名称/文本选择要触发的事件,
void menu_Click(object sender, EventArgs e)
{
var menuItem = sender as MenuItem;
var menuText = menuItem.Text;
switch(menuText) {
case "MenuItem1":
// menu item1 clicked .. do something
break;
case "MenuItem2":
// menu item2 clicked .. do something
break;
. ...
}https://stackoverflow.com/questions/59940510
复制相似问题