我有一个 ToolStripMenuItem用作附加到 MenuStrip 的下拉菜单我的Form .此菜单的内容根据表单其余部分的状态而变化,并循环填充。
问题是现在我想添加此菜单中的项目具有基于它们在列表中的位置的键盘快捷键的功能。列表中的第一项应为 Ctrl+1,第二项应为 Ctrl+2,依此类推。
自 ShortcutKeys使用 Keys 设置枚举 我不知道如何将增量值映射到枚举中的正确值。我曾希望这样的事情会奏效,但它没有:
newToolStripMenuItem.ShortcutKeys = Keys.Control | (Keys.D0 + menuItemNumber++);
编辑
可能还有其他事情正在发生。根据this asker我最初的解决方案应该有效,Migol提出的解决方案产生相同的结果。 ShortcutKeys 中的值显示为一些奇怪的字符组合,没有明显的模式。
最佳答案
您可以像这样使用 Enum.Parse
方法:
string enumName = "D" + menuItemNumber++;
newToolStripMenuItem.ShortcutKeys = Keys.Control | (Keys)Enum.Parse(typeof(Keys), enumName);
关于c# - 在循环中填充快捷键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22636801/