在单元格焦点处 绘制一个ListBox,现在按向下的方向键的时候 listbox的item向下移动,焦点仍在单元格中,这个已实现。但如果单元格不在最末一行 ,按向下键 首先触发的是DataGridView的默认键盘事件,也就是焦点移至下一行了,请问应该怎么处理。由于DataGridView已经是自定义控件,团队不允许再改动,所以必须在一般代码中 屏蔽Grid的默认键盘事件,同时还要使listBox移动

解决方案 »

  1.   

    private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode  ==Keys.Right)
                {
                    e.Handled = false ;
                }
            }
      

  2.   

    已解决protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
            {
               
                if (keyData == Keys.Down || keyData == Keys.Up)  //监听回车事件 
                {
                    if (this.dgvZj.IsCurrentCellInEditMode)  //如果当前单元格处于编辑模式 
                    {
                                           
                        return true;
                            
                    }            }
                //继续原来base.ProcessCmdKey中的处理 
                return base.ProcessCmdKey(ref msg, keyData);
            }将listbox的上移下移 放在 PreviewKeyDown事件中处理  这样可以屏蔽datagridview的默认键盘事件 同时移动listbox上面各位辛苦了  散分