c# - 从上下文菜单处理快捷方式

标签 c# winforms events keyboard-shortcuts contextmenu

我有一个显示为模型对话框的 Windows 窗体。它有一个 ContextMenuStrip 类的上下文菜单。我在上下文菜单中设置了几个项目的快捷方式。但此快捷方式仅在显示上下文菜单时有效。即使上下文菜单未激活,如何使它们工作?

我知道的唯一方法是处理表单的 KeyPress 事件,递归遍历上下文菜单中的所有项目,并将其 ShortcutKeys 属性与实际键进行比较按下。如果匹配,则为此项手动调用 OnClick 事件。有更好的想法吗?

最佳答案

使用 ToolStripMenuItem.ShortCutKeys 属性,这样您就无需迭代和调用事件处理程序。

示例代码:

ContextMenuStrip _contextMenuStrip = new ContextMenuStrip();
var menuItem = new ToolStripMenuItem("Copy");
menuItem.ShortcutKeys = Keys.Control | Keys.C;
_contextMenuStrip.Items.Add(menuItem);

关于c# - 从上下文菜单处理快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12125821/

相关文章:

c# - 远程服务器返回错误: (401) Unauthorized Error occured when i try to download file via Web Client

C# - 将 MenuStrip 代码转换为 ToolStrip

Javascript 停止一个事件

c# - C++ 和 C# COM 事件性能。帮助

c# - 扁平化关键集合项目的集合 Linq

c# - CaSTLe IoC - 支持 Release(...) 的 ISubDependencyResolver?

C# - EventHandler 始终为空

java - Jpanel 用鼠标移动事件重绘

c# - CaSTLe Windsor Resolve 在运行时

c# - 如何从 HTML 页面中提取一个或多个单词 C#