我有一个已添加到表单的MenuStrip,在其中的一个下拉菜单中,我有一个文本框。当我在文本框中按Enter键时,我想要运行一个函数,然后关闭下拉菜单。我知道如何完成输入部分,但我不知道如何关闭MenuStrip下拉菜单。
答案 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()
方法。
例如,假设您有一个带有File
,Edit
,Help
的工具条。在Edit
菜单上,您的文本框嵌套在某处:
EditMenuItem - &GT; FindMenuItem - &GT; SearchTextBoxHere
您可以在文本框的keydown事件中调用编辑菜单的HideDropDown()
方法:
EditMenuItem.HideDropDown();