C# 在浏览桌面应用程序中的“数据网格视图”文本框列时,是否可以触发Tab键使用的任何事件

C# 在浏览桌面应用程序中的“数据网格视图”文本框列时,是否可以触发Tab键使用的任何事件,c#,gridview,desktop-application,setfocus,datagridviewtextboxcell,C#,Gridview,Desktop Application,Setfocus,Datagridviewtextboxcell,我有一个数据网格视图文本框列类型的网格视图 网格中有以下字段 Sr.No | Description | HSNCode | Qty | Rate | Amount Sr.编号和金额在程序中生成 我的问题是,当我使用tab键在网格中导航时,我想检查is“Qty”和“Rate”是否包含任何值 i、 e.如果用户输入描述,然后不输入“数量”和“费率”,则跳转到金额字段,在该字段中,我通过“数量*费率”生成值,但我想检查是否未输入“费率”或“数量”,然后我想转移对这两个字段的控制权 我找到了鼠标点击

我有一个数据网格视图文本框列类型的网格视图

网格中有以下字段

Sr.No | Description | HSNCode | Qty | Rate | Amount
Sr.编号和金额在程序中生成

我的问题是,当我使用
tab
键在网格中导航时,我想检查is“Qty”和“Rate”是否包含任何值

i、 e.如果用户输入描述,然后不输入“数量”和“费率”,则跳转到金额字段,在该字段中,我通过“数量*费率”生成值,但我想检查是否未输入“费率”或“数量”,然后我想转移对这两个字段的控制权

我找到了鼠标点击的解决方案,代码如下:

private void grdData_CellClick(object sender, DataGridViewCellEventArgs e)
{
    if (e.ColumnIndex == 5)
    {
       if (Convert.ToString(grdData.Rows[e.RowIndex].Cells[4].Value).Equals(""))
       {
           grdData.ClearSelection();
           grdData.Rows[e.RowIndex].Cells[4].Selected = true;
       }
    }
}
当用户单击“金额”字段时,这非常有效,但如果我希望为
选项卡键
使用相同的解决方案,该怎么办

我怎样才能找到解决方案?我应该将哪个事件用于网格


请帮助

您可以尝试CellLeave/CellValidating事件。我对编码有点生疏,但我相信这对您来说是可行的。

我将
单元格的代码单击()
放在
CellLeave()和
cellvalizing()
中,但不起作用。您不应该在这些方法中使用事件参数的行和列索引。只要调试一下,看看哪里不正确。