C# 根据KeyEventArgs与组合键字符串相互转换

   /// 快捷键相关的类    ///     public static class HotKeyInfo    {        ///         /// 根据KeyEventArgs生成组合键字符串        ///         ///         ///         public static string GetStringByKey(KeyEventArgs e)        {            if (e.KeyValue == 16)            {                return "Shift + ";            }            else if(e.KeyValue == 17)            {                 return "Ctrl + ";            }            else if(e.KeyValue == 18)            {                return "Alt + ";            }            else            {                StringBuilder keyValue = new StringBuilder();                if (e.Modifiers != 0)                {                    if (e.Control)                    {                        keyValue.Append("Ctrl + ");                    }                    if (e.Alt)                    {                        keyValue.Append("Alt + ");                    }                    if (e.Shift)                    {                        keyValue.Append("Shift + ");                    }                }                if ((e.KeyValue >= 48 && e.KeyValue <= 57))    //0-9                {                    keyValue.Append(e.KeyCode.ToString());                    //keyValue.Append(e.KeyCode.ToString().Substring(1));                }                else                {                    keyValue.Append(e.KeyCode);                }                return keyValue.ToString();            }        }        ///         ///  根据按键获得单一键值对应字符串        ///         ///         ///         public static string GetSingleStrByKey(KeyEventArgs e)        {            if (e.KeyValue == 16)            {                return "Shift";            }            else if (e.KeyValue == 17)            {                return "Ctrl";            }            else if (e.KeyValue == 18)            {                return "Alt";            }            else            {                return e.KeyCode.ToString();            }        }        ///         /// 根据string生成KeyEventArgs        ///         ///         ///         public static KeyEventArgs GetKeyByString(string strKey)        {            Keys keyResult = new Keys();            string[] strKeyCodes = strKey.Split('+');            if (strKeyCodes.Length > 0)            {                int numberKey;                foreach (string keyEach in strKeyCodes)                {                    if (keyEach.Trim().ToUpper() == "CTRL")                    {                        keyResult = keyResult | Keys.Control;                    }                    else if (keyEach.Trim().ToUpper() == "SHIFT")                    {                        keyResult = keyResult | Keys.Shift;                    }                    else if (keyEach.Trim().ToUpper() == "ALT")                    {                        keyResult = keyResult | Keys.Alt;                    }                    //数字                    else if (int.TryParse(keyEach, out numberKey))                    {                        KeysConverter converter = new KeysConverter();                        Keys getKey = (Keys)converter.ConvertFromString('D' + keyEach);                        keyResult = keyResult | getKey;                    }                    //其他(字母,F0-F12)                    else                    {                        KeysConverter converter = new KeysConverter();                        Keys getKey = (Keys)converter.ConvertFromString(keyEach);                        keyResult = keyResult | getKey;                    }                }             }            KeyEventArgs newEventArgs = new KeyEventArgs(keyResult);            return newEventArgs;        }    }

以上就是c# 根据keyeventargs与组合键字符串相互转换的内容,更多相关内容请关注创想鸟(www.php.cn)!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1432251.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 06:24:47
下一篇 2025年12月17日 06:25:22

相关推荐

发表回复

登录后才能评论
关注微信