下面代码空格好使,按空格不会响应了,但是回车不行。        protected override void WndProc(ref Message m)
        {
            Trace.Write(m.ToString() + "\n");
            if (m.WParam == (IntPtr)0xd || m.WParam == (IntPtr)0x20)
            {
                return;
            }
            base.WndProc(ref m);
        }下面是按回车时的Message 
msg=0x87 (WM_GETDLGCODE) hwnd=0x191058 wparam=0x0 lparam=0x0 result=0x0
msg=0xf (WM_PAINT) hwnd=0x191058 wparam=0x0 lparam=0x0 result=0x0
msg=0x8 (WM_KILLFOCUS) hwnd=0x191058 wparam=0x2c112e lparam=0x0 result=0x0
msg=0x281 (WM_IME_SETCONTEXT) hwnd=0x191058 wparam=0x0 lparam=0xffffffffc000000f result=0x0
msg=0x282 (WM_IME_NOTIFY) hwnd=0x191058 wparam=0x1 lparam=0x0 result=0x0
msg=0xf (WM_PAINT) hwnd=0x191058 wparam=0x0 lparam=0x0 result=0x0该拦截谁?谢谢

解决方案 »

  1.   

     protected override void WndProc(ref Message m)
            {
                Trace.Write(m.ToString() + "\n");
                if (m.WParam == (IntPtr)0xd || m.WParam == (IntPtr)0x20)
                {
                    return;
                }
                base.WndProc(ref m);
            }单步跟踪一下,为什么回车键值没起作用
      

  2.   


             protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
            {
                if (keyData == Keys.Enter)
                {
                    return true;
                }
                return base.ProcessCmdKey(ref msg, keyData);
            }用这个方法可以屏蔽回车
      

  3.   

    通过 JQUERY获取按键值,如果是回车则return flase
      

  4.   

    来晚了~  
    不过,过滤空格的方法用KeyDown不就好了吗?        private void button1_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Space)
                {
                    e.SuppressKeyPress = false;
                }
            }
      

  5.   

    监视所有的keydown事件,判断如果是回车或者空格就屏蔽   private void 页面名字_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
            {            if (e.KeyCode.ToString() == "Return")
                {
                    return;
                }
                else if (e.KeyValue.ToString() == "")
                {
                    return;
                }
            }