在c++ builder中是这样的:
void __fastcall OnHotKey(TMessage &Message);
BEGIN_MESSAGE_MAP
        MESSAGE_HANDLER(WM_HOTKEY,TMessage,OnHotKey)
END_MESSAGE_MAP(TForm)初学c#,请各位多多帮助,谢谢!!!!

解决方案 »

  1.   

    重写Form得WndProc方法:
    protected override void WndProc(ref Message m)
    {
    switch (m.Msg)
    {
    case WM_HOTKEY:
    // 你的处理
    break;
    }
    base.WndProc (ref m);
    }
      

  2.   

    .Net不认WM_HOTKEY消息,定义一个常量:
    private const int WM_HOTKEY = 0x0312;
      

  3.   

    protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg , System.Windows.Forms.Keys keyData) //激活回车键
    {
    int WM_KEYDOWN=256;         
    int WM_SYSKEYDOWN = 260;
    if(this.ActiveControl is System.Windows.Forms.DataGridTextBox )
    {
       
    if(msg.Msg == WM_KEYDOWN | msg.Msg == WM_SYSKEYDOWN)
    {
    switch( keyData)
    { case Keys.Down:
    MsgBox("截到下箭头键")
    MessageBox.Show("下键");  
    return true;
    break;
    case Keys.Up:
    MsgBox("截到上箭头键")
    MessageBox.Show("上键");  
    return true;
    case Keys.Enter:
    MessageBox.Show("回车键");  
    }
    return true;
    break; case Keys.Control + Keys.V:
    //<CTRL> + C 组合键)

    return true;
    break;
    case Keys.Alt + Keys.Z:
                        'MsgBox("<ALT> + z 组合键被截获")
    return true;
    break;
    }
    }
    }
    return false;
    }