我有一个添加到表单中的MenuStrip,在其中的一个下拉菜单中,我有一个文本框。当我在文本框上点击enter时,我想要一个函数运行,然后下拉菜单关闭。我知道如何完成enter部分,但我不知道如何关闭MenuStrip下拉菜单。
发布于 2010-05-24 22:25:07
调用所有者的Hide()方法。例如:
private void toolStripTextBox1_KeyDown(object sender, KeyEventArgs e) {
if (e.KeyData == Keys.Enter) {
e.SuppressKeyPress = true;
toolStripTextBox1.Owner.Hide();
}
}发布于 2012-04-13 22:42:15
你可以试试这个(对我很有效)
for(int x = 0; x < menu.Items.Count; x++) ((System.Windows.Forms.ToolStripDropDownItem)menu.Items[x]).HideDropDown();
发布于 2016-06-14 00:53:31
这是一个老问题,但我遇到了同样的问题,并找到了解决方案,所以对于其他人来说:
无论textbox (或其他控件)的嵌套程度如何,都需要调用主菜单项的HideDropDown()方法。
例如,假设您有一个包含File、Edit、Help的工具条。在Edit菜单上,您将文本框嵌套在某个位置:
EditMenuItem -> FindMenuItem -> SearchTextBoxHere
您将在textbox的keydown事件上调用编辑菜单的HideDropDown()方法:
EditMenuItem.HideDropDown();https://stackoverflow.com/questions/2894894
复制相似问题