日期:2014-05-18  浏览次数:20824 次

C#怎么实现QQ一样的快捷键设置及修改


怎么把这些快捷键保存起来(以什么方式),又怎么把它读出来显示成这样。

想来想去没明白。

------解决方案--------------------
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (char.IsLetterOrDigit((char)e.KeyValue))
{
textBox1.Text = (e.Alt ? "ALT+" : "") + (e.Control ? "CTRL+" : "") + (e.Shift ? "SHIFT+" : "") + e.KeyCode;
e.SuppressKeyPress = true;
}
}
------解决方案--------------------
怎么把这些快捷键保存起来(以什么方式),又怎么把它读出来显示成这样。
--------------------------
我假设你已经知道如何做全局快捷键了。方法很多。RegistHotKey,Application.AddMessageFilter过滤键盘消息都可以。
不论以上哪种,都要对应具体键码。那你的问题就是:
键码<-->键码的文本解释 这样一个互转的关系了。
我想这个不难。你可以看看比如'A'的ascii和keys.A的键码值,找到对应关系。
------解决方案--------------------
把快捷键存在一种文件中就OK了,如:ini或者自定义文件名;
------解决方案--------------------
一般都是 keys.Control | keys.A 这样。得到一个值,保存这个的。
组合键都是或的方式位运算的。