以编程方式关闭MenuStrip

时间:2010-05-24 05:22:05

标签: c# windows forms menustrip

我有一个已添加到表单的MenuStrip,在其中的一个下拉菜单中,我有一个文本框。当我在文本框中按Enter键时,我想要运行一个函数,然后关闭下拉菜单。我知道如何完成输入部分,但我不知道如何关闭MenuStrip下拉菜单。

3 个答案:

答案 0 :(得分:5)

调用所有者的Hide()方法。例如:

    private void toolStripTextBox1_KeyDown(object sender, KeyEventArgs e) {
        if (e.KeyData == Keys.Enter) {
            e.SuppressKeyPress = true;
            toolStripTextBox1.Owner.Hide();
        }
    }

答案 1 :(得分:2)

你可以试试这个(为我工作)

for(int x = 0; x < menu.Items.Count; x++)     ((System.Windows.Forms.ToolStripDropDownItem)menu.Items[x]).HideDropDown();

答案 2 :(得分:1)

这是一个老问题,但我遇到了同样的问题并找出了解决方案,所以对于其他人来说:

无论您的文本框(或其他控件)的嵌套方式如何,您都需要调用主菜单项的HideDropDown()方法。

例如,假设您有一个带有FileEditHelp的工具条。在Edit菜单上,您的文本框嵌套在某处:

EditMenuItem - &GT; FindMenuItem     - &GT; SearchTextBoxHere

您可以在文本框的keydown事件中调用编辑菜单的HideDropDown()方法:

EditMenuItem.HideDropDown();