【发布时间】:2014-03-25 13:57:51
【问题描述】:
我有一个ToolStripMenuItem,它作为附加到我的Form 的MenuStrip 的下拉菜单。此菜单的内容根据表单其余部分的状态而变化,并在循环中填充。
问题是现在我想添加这个菜单中的项目根据它们在列表中的位置具有键盘快捷键的功能。列表中的第一项应为 Ctrl+1,第二项应为 Ctrl+2,依此类推。
由于ShortcutKeys 是使用Keys 枚举设置的,我不知道如何将递增值映射到枚举中的正确值。我曾希望这样的事情会奏效,但它没有:
newToolStripMenuItem.ShortcutKeys = Keys.Control | (Keys.D0 + menuItemNumber++);
编辑
可能还有其他事情发生。根据this asker,我的初始解决方案应该有效,Migol 提出的解决方案会产生相同的结果。 ShortcutKeys 中的值显示为一些奇怪的字符组合,没有明显的模式。
【问题讨论】:
-
您只是对调试器显示的内容感到困惑。这会让人感到困惑,因为 Keys 枚举具有 [Flags] 属性,这只是部分正确。继续前进,你没有真正的问题。
-
@HansPassant 是的,这是有道理的,但是如果两种解决方案都显示相同的内容,我可能会正确设置它,并且还有其他一些原因导致它无法正常工作。哦,对于您的第二条评论,我的问题不在于我检查值。我不在乎代码对我来说是什么样子,但它仍然需要在按下键时触发事件。