Vyk*_*tor 4 .net c# keyboard-shortcuts
我想提供用户ToolStripMenuItem.ShortcutKeys通过配置文件设置的选项,所以我发现我需要以某种方式转换string为Keys.
我已经找到了如何使用简单值来做到这一点Enum.Parse,但它无法识别如下格式:
Ctrl+i (末尾有空格)iCtrl+Alt+Esc问:有没有任何标准化的解析stings(Ctrl+i)的方法Keys?
我想避免编写我自己的函数,将文本拆分成碎片,然后分别处理每个case/special字符串.
Han*_*ant 11
您在"属性"窗口中看到的ShortcutKeys属性的字符串由TypeConverter生成.您也可以在自己的代码中使用该类型转换器.像这样:
var txt = "Ctrl+I";
var cvt = new KeysConverter();
var key = (Keys)cvt.ConvertFrom(txt);
System.Diagnostics.Debug.Assert(key == (Keys.Control | Keys.I));
Run Code Online (Sandbox Code Playgroud)
一定要提防I或Ctrl+Alt+Escape无效的快捷键.KeysConverter不会抱怨,当您分配ShortCutKeys属性时,您将获得异常.用try/except包装以捕获无效的配置数据.
| 归档时间: |
|
| 查看次数: |
1635 次 |
| 最近记录: |