0

我在 WinForm 中有一个 Gridview。我有一列我编辑的gridview。我可以单击单元格编辑并按 Enter 键以完成对除最后一行中的单元格之外的每个单元格的编辑。当下面没有要更改的行时,“enter”键什么也不做。我尝试使用 _keyPress 和 _keyDown 事件将“enter”键更改为一个选项卡,该选项卡允许用户正常进行编辑并按 Enter 提交更改。

如果有人有任何意见,我将不胜感激。

目前,当我选择一个单元格时,它会进入编辑模式,当不再选择单元格时,我会调用我的 endedit 事件并提交任何更改。

我尝试添加一个 EditingControlShowingEvent,下面的代码是尝试将一个事件分配给正在编辑的控件,希望它会调用 keydown 事件。但它仍然没有。

private void dg_EditingControlSHowing(object sender,DataGridViewEditingControlShowingEventArgs e)
{
e.Control.KeyDown += new KeyEventHandler(Control_KeyDown);
}                                                              
private void Control_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyData == Keys.Enter)
{
 this.ProcessTabKey(true);
}
}
4

1 回答 1

0
if(e.KeyData == Keys.Enter)
{
this.ProcessTabKey(true);
  if(datagrid1.Rows[grid.Rows.Count - 1].Selected == true){
    //run your event here
  }
}

这是我唯一能想到的。它会检查您的最后一行是否被选中,以便它可以进行另一个过程,例如,您可以让它在遇到该位时添加一个新行。

我不是 100% 确定这就是你需要的,但我希望它对一种方法有所帮助或给你一个想法

于 2012-05-27T14:05:45.667 回答