以编程方式关闭 MenuStrip
我有一个已添加到表单中的 MenuStrip,并且在其中的一个下拉菜单中,有一个文本框。当我在文本框中按 Enter 键时,我想要运行一个函数,然后关闭下拉菜单。我知道如何完成输入部分,但我不知道如何关闭 MenuStrip 下拉菜单。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
调用 Owner 的 Hide() 方法。例如:
Call the Owner's Hide() method. For example:
你可以试试这个(对我有用)
for(int x = 0; x
((System.Windows.Forms.ToolStripDropDownItem)menu.Items[x]).HideDropDown();
You can try this (worked for me)
for(int x = 0; x < menu.Items.Count; x++)
((System.Windows.Forms.ToolStripDropDownItem)menu.Items[x]).HideDropDown();
这是一个老问题,但我遇到了同样的问题并找到了解决方案,因此对于其他人来说:
您需要调用主菜单项的
HideDropDown()
方法,无论如何嵌套您的文本框(或其他控件)。例如,假设您有一个带有
File
、Edit
、Help
的工具条。在Edit
菜单上,您的文本框嵌套在某处:EditMenuItem
->查找菜单项
-> SearchTextBoxHere
您可以在文本框的 keydown 事件上调用编辑菜单的
HideDropDown()
方法:This is an old question, but I ran into the same issue and figured out the solution, so for others out there:
You need to call the
HideDropDown()
method of the main menu item, regardless of how nested your textbox (or other control) is.For instance, let's say you have a tool strip with
File
,Edit
,Help
. On theEdit
menu, you have your textbox nested somewhere:EditMenuItem
-> FindMenuItem
-> SearchTextBoxHere
You would call the Edit menu's
HideDropDown()
method on your textbox's keydown event: