好像在datagrid上面回车有Tab键的功能,看看是不是可以把tab键的功能取消掉呀!
关注!

解决方案 »

  1.   


    重写DataGrid控件,然后加入下面两个方法:
    protected override void OnKeyDown(KeyEventArgs e)
    {
    base.OnKeyDown (e);
    if(e.KeyCode==Keys.Enter)
    SendKeys.Send("{TAB}");
    }protected override bool ProcessKeyPreview(ref Message m)
    {
    int WM_KEYDOWN=0x0100;
    Keys keyCode = (Keys)(int)m.WParam & Keys.KeyCode; 
    if(m.Msg == WM_KEYDOWN&& keyCode == Keys.Enter )  //|| m.Msg == WM_KEYUP
             {
          m.WParam=(IntPtr)Keys.Tab;// }
    return base.ProcessKeyPreview(ref m);
    }你适当改一下。
      

  2.   

    1.在datagrid属性上加上一段js,onkeydown="if(window.keycode=13) return;"之类的代码,具体要你自己去写了..
    2.重写datagrid或datatable类,改写里面的方法,我看到了datatable里有rowchanged等方法,你可以new或override它..
      

  3.   

    检查键盘事件就可以了,重载dategraid中的方法
      

  4.   

    监控键盘事件,然后调整datagrid的焦点
      

  5.   

    监控键盘事件,然后调整datagrid的焦点
    ----------------------------------
    说明一下,因为该控件的该功能,所以键盘事件中什么多捕获的到,但这几个按纽就不行,所以才想屏蔽该功能,所以监控是不可能了,呵呵,正在试重写,好用了回来结帖,谢谢大家,谢谢!