使用 Tab 键循环单个记录

本文关键字:单个 记录 循环 Tab 使用 | 更新日期: 2023-09-27 17:55:20

我试图在datagridview中获取某种tabenter关键行为。一旦焦点位于数据网格视图中的单元格上,我就想要以下内容:

TAB - 循环浏览行中的单元格,而不转到行中最后一个单元格之后的下一行。 即继续在单个行中的单元格中循环。

ENTER - 移动到下一行。

我一直在网上寻找解决方案,但它们通常不是我所追求的行为,它们主要需要创建一个派生的DataGridView类,如果可能的话,我宁愿避免这样做。

我还想避免触发RowLeave事件,因为我使用它来验证然后接受/拒绝在该行中所做的任何单元格更改 - 因此有意识地ENTER按键离开该行并触发其验证和持久性。

使用 Tab 键循环单个记录

我现在已经为此实施了一个解决方案,并认为我应该在这里更新我采用的特定方法的详细信息。

我在DataGridViewOnKeyDown事件中加入了类似以下内容的内容:

if (e.KeyCode == Keys.Tab)
    {
        if (dataGrid.CurrentCell.ColumnIndex == dataGrid.Columns.Count - 1)
            {
                dataGrid.CurrentCell = dataGrid[1,dataGrid.CurrentCell.RowIndex]; 
            }
    }

似乎可以解决问题。