首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从ShortCut中获取密钥

从ShortCut中获取密钥
EN

Stack Overflow用户
提问于 2013-10-07 09:58:31
回答 3查看 563关注 0票数 2

还有别的办法从捷径里得到钥匙吗?

sc为System.Windows.Forms.Shortcut

代码语言:javascript
复制
var k = (Keys)sc;

我需要每个键的单独字符串,上面的字符串将无法工作,因为我使用的是一个进度ABL .NET桥(不要问)。

我认为sc应该是一个整数,但显然在.NET中,这一行代码工作得很好。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-06-06 13:13:22

ABL中的例子:

代码语言:javascript
复制
USING Progress.Util.TypeHelper FROM ASSEMBLY.
USING System.Enum FROM ASSEMBLY.
USING System.Windows.Forms.Keys FROM ASSEMBLY.
USING System.Windows.Forms.Shortcut FROM ASSEMBLY.

DEFINE VARIABLE ShortCut AS ShortCut NO-UNDO.
DEFINE VARIABLE Keys_ AS Keys NO-UNDO.

ShortCut = System.Windows.Forms.Shortcut:CtrlShiftF1.
Keys_ = CAST(Enum:ToObject(TypeHelper:GetType("System.Windows.Forms.Keys"), ShortCut:value__), Keys).

MESSAGE Keys_
    VIEW-AS ALERT-BOX.
票数 1
EN

Stack Overflow用户

发布于 2013-10-07 13:58:18

ShortCut枚举值已经被精心选择,以便与快捷方式的Keys枚举完全匹配。例如,ShortCut.CtrlShiftF1是0x30070,它与以下内容匹配: 0x20000 \ 0x10000 \ 0x00070 = 0x30070 =0x30070。这不是意外。

已经提供了将ShortCut转换为字符串的功能,如果将MenuItem.Shortcut属性设置为True,则MenuStrip中的菜单项可以自动显示MenuItem.Shortcut的字符串。您可以在自己的代码中使用相同的技术,使用KeysConverter类:

代码语言:javascript
复制
    var sc = Shortcut.CtrlShiftF1;
    var txt = new KeysConverter().ConvertToString((Keys)sc);
    Console.WriteLine(txt);

输出:

Ctrl+Shift+F1。

票数 5
EN

Stack Overflow用户

发布于 2019-02-23 11:17:38

通过将System.Windows.Forms.GetHashValue()的值GetHashValue()与KeyDown事件处理程序中的e:KeyData:GetHGashValue()的结果进行比较,我已经使用ABL KeyDown桥解决了这个问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19221807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档