以编程方式关闭 MenuStrip

发布于 2024-09-03 08:50:47 字数 125 浏览 9 评论 0 原文

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

I have a MenuStrip that I have added to a form, and in one of the dropdown menus in it, I have a text box. When I hit enter on the textbox, I want a function to run, then the drop down menu to close. I know how to get the enter part done, but I have no idea how to close the MenuStrip dropdown menu.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

一杯敬自由 2024-09-10 08:50:47

调用 Owner 的 Hide() 方法。例如:

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

Call the Owner's Hide() method. For example:

    private void toolStripTextBox1_KeyDown(object sender, KeyEventArgs e) {
        if (e.KeyData == Keys.Enter) {
            e.SuppressKeyPress = true;
            toolStripTextBox1.Owner.Hide();
        }
    }
天冷不及心凉 2024-09-10 08:50:47

你可以试试这个(对我有用)

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();

尴尬癌患者 2024-09-10 08:50:47

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

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

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

EditMenuItem
->查找菜单项
-> SearchTextBoxHere

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

EditMenuItem.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 the Edit 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:

EditMenuItem.HideDropDown();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文