C#程序中如何用快捷键触发事件

来源:百度知道 编辑:UC知道 时间:2024/05/21 09:11:24
如何在C#写的程序中用快捷键触发事件,就像是QQ那样可以用热键呼出消息,或者显示窗口.
本人C#新手,希望能详细说明原由.

全局热键~
[DllImport("user32.dll")]
private static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, Keys vk);
[DllImport("user32.dll")]
private static extern bool UnregisterHotKey(IntPtr hWnd, int id);
这是设置和取消热键的API
RegisterHotKey(this.Handle, 200, 0, Keys.F2); 第一个是本窗口的句柄,第二个随便写一个数,如果多个热键的话要写不同,作为热键的标记,
取消热键的时候带入这个数字就可以了
UnregisterHotKey(this.Handle, 200);

在命名前加&以和它最近的字母为快捷键。
例如:&z
那么快捷键是:Alt+Z

private void Form1_KeyUp(object sender, KeyEventArgs e)
{
if(e.KeyValue==112 )//f1键的keyvalue是112
MessageBox.Show(e.KeyValue.ToString());
}

如上代码:编写form窗体的KeyUp事件,当按下键盘的时候就能触发这个事件,事件中就是判断按下的键是不是f1,是的话就弹出对话框

private void frmMain_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.F2)
{
MessageBox.Show("按F1显示帮助!");