工具条菜单项单击事件
本文关键字:事件 单击 菜单项 工具 | 更新日期: 2023-09-27 18:13:57
我使用下面的代码为我的菜单添加一个项目:
private void oKToolStripMenuItem2_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(toolStripTextBox3.Text))
{
MessageBox.Show("Please enter a username in the textbox.", "Error");
return;
}
var username = usernamesToolStripMenuItem1.DropDownItems.Add(toolStripTextBox3.Text);
username.Name = toolStripTextBox3.Text;
Properties.Settings.Default.Usernames.Add(toolStripTextBox3.Text);
toolStripTextBox3.Clear();
}
我如何制作/调用它的点击事件?目标是,当您单击用户名时,它会在文本框中填充该用户名。我希望有一个。selecteditem,但是我找不到。
您可以先创建菜单项,然后为其分配不同的事件:
private void addNameToolStripMenuItem_Click(object sender, EventArgs e)
{
...
var newItem = new ToolStripMenuItem(toolStripTextBox3.Text);
newItem.Click +=new EventHandler(addedItemClickEvent);
newItem.Name = toolStripTextBox3.Text;
usernamesToolStripMenuItem1.DropDownItems.Add(newItem);
//Properties.Settings.Default.Usernames.Add(toolStripTextBox3.Text);
toolStripTextBox3.Clear();
}
然后您可以分析发件人名称以执行各种操作:
private void addedItemClickEvent(object sender, EventArgs e)
{
MessageBox.Show((sender as ToolStripMenuItem).Text);
}
创建菜单项后订阅Click
事件
您可以在单行中完成:
username.Click += (s, e) => SomeTextBox.Text = "test";
或者创建一个单独的方法,如果你更容易阅读:
private void oKToolStripMenuItem2_Click(object sender, EventArgs e)
{
...
var username = usernamesToolStripMenuItem1.DropDownItems.Add(toolStripTextBox3.Text);
username.Click += username_Click;
...
}
void username_Click(object sender, EventArgs e)
{
SomeTextBox.Text = "test";
}
只需使用Add
方法的过载,该方法接受ToolStripItem
作为输入,并使用ToolStripLabel
的构造函数接收委托作为输入来创建该项目:
private void oKToolStripMenuItem2_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(toolStripTextBox3.Text))
{
MessageBox.Show("Please enter a username in the textbox.", "Error");
return;
}
var username = usernamesToolStripMenuItem1.DropDownItems.Add(
new ToolStripLabel(toolStripTextBox3.Text, (Image) null,
false, toolstrip_click));
username.Name = toolStripTextBox3.Text;
Properties.Settings.Default.Usernames.Add(toolStripTextBox3.Text);
toolStripTextBox3.Clear();
}
void toolstrip_click(object sender, EventArgs e)
{
MessageBox.Show(((ToolStripLabel)sender).Text); // Write your code here
}