C#中,如何实现监听ctrl+enter,就是QQ中按ctrl+enter发送信息一样,跪求!

解决方案 »

  1.   

    用KeyDown,Keypress和KeyUp事件来处理!
      

  2.   

    当窗体的焦点在其它子控件时,窗体是不会触发KeyDown事件的,如果窗体控件比较少,可以将所有控件的KeyDown事件由同一事件处理过程处理.如果控件很多,最好是添加一个消息筛选器和Static事件,处理msg=257,258,259,260,261的message,当满足Key=13,LParam包含Ctrl键时,触发自定义事件
      

  3.   

    public FrmCommon()
            {
                InitializeComponent();
                this.KeyPreview = true;
                this.KeyDown += new KeyEventHandler(FrmCommon_KeyDown);
            }protected virtual void FrmCommon_KeyDown(object sender, KeyEventArgs e)
            {
                switch (e.KeyCode)
                {
                    case Keys.Enter:     //保存
                        if (e.Control)
                            ToolButton_Click(this.ToolButtonSave, null);
                        break;
                    ...
                    case Keys.Escape:     //退出
                        this.Close();
                        break;
                    default:
                        return;
                }
            }
      

  4.   

    应该是这样的,谢谢你们啦
    protected override bool ProcessCmdKey(ref Message msg,Keys keyData)
                  {
    if ((keyData==(Keys.Control |Keys.Enter)))
       {
           //按钮的事件写在这
         return true;
        }
        else
        return base.ProcessCmdKey(ref msg,keyData);
      }