积极答复者
DataGridView单元格编辑时,按上下方向键无法触发KeyDown事件,各位大哥大姐帮帮忙

问题
-
源码如下:
private DataGridViewTextBoxEditingControl EditingControl = null;
private void dgvMain_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (this.dgvMain.CurrentCell.RowIndex > -1)
{
if (e.Control is DataGridViewTextBoxEditingControl)
{
this.EditingControl = (DataGridViewTextBoxEditingControl)e.Control;
//增加委托处理
this.EditingControl.KeyDown += new KeyEventHandler(this.EditingControl_KeyDown);
}
}
}
private void EditingControl_KeyDown(object sender, KeyEventArgs e)
{
//业务处理
//按上下键时就是不触发该事件
}
private void dgvMain_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
if (this.EditingControl != null)
{
EditingControl.KeyDown -= new KeyEventHandler(this.EditingControl_KeyDown);
this.EditingControl = null;
}
}
答案
-
你是按这个做的吧:
http://www.pin5i.com/showtopic-14937.html
主要原因是有些方向键做了功能键,用于在不同单元格中移动,这时不会再触发KeyDown事件了!
周雪峰- 已标记为答案 KeFang Chen 2010年3月8日 2:19
-
你好!上下键事件被 dataGridView 默认为选中单元格的上下移动,这里使用 EditingControl 的 Validating Validated 事件是可以的。
知识改变命运,奋斗成就人生!- 已标记为答案 KeFang Chen 2010年3月8日 2:19
-
全部回复
-
-
你是按这个做的吧:
http://www.pin5i.com/showtopic-14937.html
主要原因是有些方向键做了功能键,用于在不同单元格中移动,这时不会再触发KeyDown事件了!
周雪峰- 已标记为答案 KeFang Chen 2010年3月8日 2:19
-
你好!上下键事件被 dataGridView 默认为选中单元格的上下移动,这里使用 EditingControl 的 Validating Validated 事件是可以的。
知识改变命运,奋斗成就人生!- 已标记为答案 KeFang Chen 2010年3月8日 2:19
-