c# - 在循环中填充快捷键

标签 c# .net winforms c#-2.0

我有一个 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);

Enum.Parse documentation

关于c# - 在循环中填充快捷键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22636801/

相关文章:

c# - 如何避免重复条件逻辑?

c# - 动态添加资源字符串

c# - 替换包含文件中随机数的字符串

c# - 如何绘制Windows经典风格的窗口元素

c# - 添加多个条目后列表框挂起

c# - 如果数据库表更新/插入,如何让 Windows C# 控件自动更新?

c# - 获取文件扩展名 C#

.net - 实例验证错误 : is not a valid value for Xml deserialization

.net - .Net 中 AOP 的最佳实现是什么?

c# - Google Admin SDK > 目录 API > 用户 > LastLoginTime 不一致