从toolstripmenuitem中移除一个项目
本文关键字:一个 项目 toolstripmenuitem | 更新日期: 2023-09-27 18:13:48
我目前正在我的应用程序顶部的一个菜单栏。
添加用户名到菜单是没有问题的,但是删除用户名似乎是不同的。我使用以下代码向菜单中添加一项:
usernamesToolStripMenuItem1.DropDownItems.Add(toolStripTextBox3.Text);
就像我说的,它工作得很好,并立即将用户名添加到菜单。但是,当我试图从菜单中删除一个项目时,它不会立即删除它,我必须重新启动我的应用程序。
所以:我必须改变什么,所以它立即从下拉项的文本框中删除字符串?我将用户名保存在Properties.Default.Settings.Usernames
中。是否有一个原因,为什么它立即添加一个菜单项,但当我试图删除一个我必须重新启动我的应用程序?
删除项的代码:
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();
}
要使用RemoveByKey
方法,需要设置ToolStripItem.Name
属性。在添加项时,使用以下代码。
var tsi = usernamesToolStripMenuItem1.DropDownItems.Add(toolStripTextBox3.Text);
tsi.Name = toolStripTextBox3.Text;