C# 如何通过键盘快捷方式打开工具栏菜单?

C# 如何通过键盘快捷方式打开工具栏菜单?,c#,winforms,toolbar,C#,Winforms,Toolbar,我的表单上有一个空白的工具栏按钮,我正在运行时添加它的所有菜单和菜单项。 我需要在此工具栏的菜单中添加键盘快捷键。如何执行此操作?您可以使用菜单项文本中的&special符号来标记键。看看这个简单的例子: 编辑: 1如果下拉按钮中有文本,则设置“&”符号就足够了,就像菜单使其下拉一样。因此,在这种特定情况下,在代码中的某个点分配给该按钮的操作字符串必须变成&Actions 2如果只是图像下拉,按钮上没有可见的文本,不幸的是“&”符号技巧不起作用。但是你可以做,比如,像这样的事情。伪代码: 希望这

我的表单上有一个空白的工具栏按钮,我正在运行时添加它的所有菜单和菜单项。
我需要在此工具栏的菜单中添加键盘快捷键。如何执行此操作?

您可以使用菜单项文本中的&special符号来标记键。看看这个简单的例子:

编辑:

1如果下拉按钮中有文本,则设置“&”符号就足够了,就像菜单使其下拉一样。因此,在这种特定情况下,在代码中的某个点分配给该按钮的操作字符串必须变成&Actions

2如果只是图像下拉,按钮上没有可见的文本,不幸的是“&”符号技巧不起作用。但是你可以做,比如,像这样的事情。伪代码:


希望这能有所帮助。

您在这里没有显示太多关于您所做工作的代码。我要试试看:

ToolStripMenuItem tsm = new ToolStripMenuItem("&Test Menu");
tsm.ShortcutKeys = ((Keys)((Keys.Control | Keys.T)));

在tbrDropDownButton.Text=UCMDefinitions.GetCaptiontextId的位置,使用tbrDropDownButton.Text=&+UCMDefinitions.GetCaptiontextId。这将指定菜单项的第一个字母作为快捷键。如果有多个项目具有相同的快捷键,则用户必须在按一次或多次快捷键后按Enter。

我不能。这是为设计时间。我在运行时添加它们。使用一种方法,它可以执行以下操作:tbrDropDownButton.Text=UCMDefinitions.GetCaptiontextId;tbrDropDownButton.Click+=new System.EventHandlerthis.StripClick;toolStrip1.Items.AddtbrDropDownButton;这段代码应该可以做到这一点。。。不是吗?MenuItem miFile=main menu.MenuItems.Add&File;无论你在哪里添加菜单项,都要确保像这样添加,对吗?@BDotA:我在那个网站上没有看到任何代码中的设计内容。实际上,一切都是从代码中设置的。问题可能是,您需要将“&”注入从UCMDDefinitions.GetCaptiontextId;在正确的位置。但我没有使用MenuItem,我使用的是'tbrDropDownButton=new ToolStripDropDownButton;'然后像我之前的评论一样分配它。所以它是一个ToolStripDropDownButton@Tigran当前位置是的,我做了,但它仍然不工作。它还没有打开。有没有一种方法可以通过调用ProcessCmdKey的事件处理程序来实现它?但该称之为什么事件?”tbrDropDownButton.Text=UCMDefinitions.GetCaptiontextId;tbrDropDownButton.ToolTipText=UCMDefinitions.GetCaptiontextId;tbrDropDownButton.Click+=new System.EventHandlerthis.StripClick;toolStrip1.Items.AddtbrDropDownButton;'我尝试了注入的方法&在工具栏的测试中,当这个表单不是MDI表单时,它工作,但当它是MDI表单时,它不工作。这是主应用程序中的一个设置,我们可以在父窗体内部显示此窗体,也可以在父窗体外部显示此窗体。可以选择将菜单与父窗体和MDI窗体合并。您看到的菜单可能不是您认为的形式。这是否回答了您的问题?
ToolStripMenuItem tsm = new ToolStripMenuItem("&Test Menu");
tsm.ShortcutKeys = ((Keys)((Keys.Control | Keys.T)));