我目前正在申请的顶部开设一个菜单栏。
在菜单中添加用户名没有问题,但删除用户名似乎有所不同。我使用此代码将一个项目添加到菜单中:
usernamesToolStripMenuItem1.DropDownItems.Add(toolStripTextBox3.Text);
就像我说它工作正常并立即将用户名添加到菜单中。但是,当我尝试从菜单中删除某个项目时,它不会立即删除它,我必须重新启动我的应用程序。
所以:我需要更改什么才能立即从dropdownitems中删除文本框中的字符串?我将用户名保存在Properties.Default.Settings.Usernames
中。有没有理由立即添加一个menuitem,但是当我尝试删除一个时,我必须先重启我的应用程序?
修改 删除项目的代码:
private void oKToolStripMenuItem3_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(toolStripTextBox4.Text))
{
MessageBox.Show("Please enter the username you would like to delete in the textbox., "Error");
return;
}
if (Properties.Settings.Default.Usernames.Contains(toolStripTextBox4.Text) == false)
{
MessageBox.Show("The username you're trying to delete does not exist.", "Error");
toolStripTextBox4.Clear();
return;
}
usernamesToolStripMenuItem1.DropDownItems.RemoveByKey(toolStripTextBox4.Text);
Properties.Settings.Default.Usernames.Remove(toolStripTextBox4.Text);
toolStripTextBox4.Clear();
}
答案 0 :(得分:0)
要使用RemoveByKey
方法,您需要设置ToolStripItem.Name
属性。添加项目时,请使用以下代码。
var tsi = usernamesToolStripMenuItem1.DropDownItems.Add(toolStripTextBox3.Text);
tsi.Name = toolStripTextBox3.Text;