我已经为一个应用程序编写了一个扩展框架,我希望用户能够为他们的扩展设置键盘快捷方式来运行。
当我在运行时将MenuItem添加到MainMenu控件时,我希望能够使用Crtl+N来运行扩展,而不必使用鼠标或键盘单击MenuItem。
但问题是我不知道如何将用户的字符串值转换为MenuItem.Shortcut。
例如,下面是用户选择的键盘快捷键"Ctrl+N"
如何将其转换为MenuItem.Shortcut
?我在MSDN上找不到任何关于此的内容。我已经阅读了文档。
我已经为一个应用程序编写了一个扩展框架,我希望用户能够为他们的扩展设置键盘快捷方式来运行。
当我在运行时将MenuItem添加到MainMenu控件时,我希望能够使用Crtl+N来运行扩展,而不必使用鼠标或键盘单击MenuItem。
但问题是我不知道如何将用户的字符串值转换为MenuItem.Shortcut。
例如,下面是用户选择的键盘快捷键"Ctrl+N"
如何将其转换为MenuItem.Shortcut
?我在MSDN上找不到任何关于此的内容。我已经阅读了文档。
1条答案
按热度按时间dtcbnfnu1#
您 * 可以 * 将用户输入解析为字符串,如下所示:
但我建议您不要这样做,您强制用户输入
CtrlShiftF10
之类的内容,并使用正确的大小写,否则输入将无法通过验证。一个类似于PropertyGrid中所示的Shortcut转换器的专用接口会更好,这样就不会强迫用户猜测要写什么,也不会出现错别字。
但是,您也可以将Shortcut枚举器的值(表示
Keys
的组合)分配给ComboBox的DataSource等,以便让用户选择其中一个条目。例如,使用MainMenu组件(在.Net Core 3.1及更高版本中已弃用)获取Shortcut枚举器的值,然后设置MenuItem的
Shortcut
属性:使用MenuStrip控件时,您必须改为将
SelectedItem
转换为Keys
。.Net中提供了快捷方式枚举数,因此代码保持不变(转换除外):