4

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

4

3 回答 3

10

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

    private void toolStripTextBox1_KeyDown(object sender, KeyEventArgs e) {
        if (e.KeyData == Keys.Enter) {
            e.SuppressKeyPress = true;
            toolStripTextBox1.Owner.Hide();
        }
    }
于 2010-05-24T14:25:06.863 回答
3

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

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

于 2012-04-13T14:42:15.177 回答
1

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

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

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

EditMenuItem -> FindMenuItem -> SearchTextBoxHere

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

EditMenuItem.HideDropDown();
于 2016-06-13T16:53:30.987 回答