尝试使用 Enter 键在网格视图的最后一行结束对单元格的编辑

本文关键字:一行 结束 编辑 单元格 最后 Enter 视图 网格 | 更新日期: 2023-09-27 18:35:31

我在WinForm中有一个网格视图。我有一列我编辑的网格视图。我可以单击单元格编辑并按回车键以完成除最后一行单元格之外的每个单元格的编辑。当下面没有要更改为的行时,"Enter"键不执行任何操作。我尝试使用_keyPress和_keyDown事件将"Enter"键更改为一个选项卡,该选项卡将允许用户正常进行编辑并按回车键提交更改。

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

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

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

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);
}
}

尝试使用 Enter 键在网格视图的最后一行结束对单元格的编辑

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

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

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