从toolstripmenuitem中删除项目

时间:2014-07-20 11:16:18

标签: c# winforms

我目前正在申请的顶部开设一个菜单栏。

在菜单中添加用户名没有问题,但删除用户名似乎有所不同。我使用此代码将一个项目添加到菜单中:

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();

}

1 个答案:

答案 0 :(得分:0)

要使用RemoveByKey方法,您需要设置ToolStripItem.Name属性。添加项目时,请使用以下代码。

var tsi = usernamesToolStripMenuItem1.DropDownItems.Add(toolStripTextBox3.Text);
tsi.Name = toolStripTextBox3.Text;