原帖:http://topic.csdn.net/u/20080619/18/197797f2-bde3-46d9-834c-960a2f7e2a16.html?1340413755早知道试过再结帖,看原二楼的思路以为不会再出问题了,没想到还是出了问题,
DataGridView的KeyDown事件经调试恰恰是在单元格非编辑状态下才能触发的,在单元格的编辑状态下是不会触发的,Key系列事件里除了KeyUp事件之外其余的事件都是这样的,以为找到KeyUp这个救星了,没想到KeyUp是在CellEndEdit之后才触发的,根本没有用想想是不是单元格编辑状态下窗口的焦点其实不在DataGridView控件上而是在闪着光标的那个子控件上啊,可那个子控件是什么,要怎么获得对它的操作权啊?大侠快来指教一下~~~~~~~~~

解决方案 »

  1.   

    5555555555,新情况
            private void dataGridViewEditingControl_KeyDown(object sender, KeyEventArgs e)
            {
                //MessageBox.Show("哦。。2");
                if (e.KeyCode == Keys.Escape)
                    IsEscapeDown = true;
            }        private void dataGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
            {
                //MessageBox.Show("哦。。啊~~~~~~");
                e.Control.KeyDown += new KeyEventHandler(this.dataGridViewEditingControl_KeyDown);
            }
    还是不行,dataGridViewEditingControl_KeyDown输入哪个字符都会触发,就是按Esc不会触发!真是两不管之地啊~~~~~~~~~~~~~~难道要我出动钩子函数?各位大侠,除了钩子函数还有别的方法吗?
      

  2.   

    哈哈,改用PreviewKeyDown事件,搞定~。