5

我正在 datagridview 单元格中编写代码输入事件为

private void dgvGoodsRecpt_CellEnter(object sender, DataGridViewCellEventArgs e)
{
    if (dgvGoodsRecpt.CurrentRow.Cells[e.ColumnIndex].ReadOnly)
    {
        SendKeys.Send("{tab}");
    }
}

如果当前单元格是,此代码会将选项卡发送到下一个单元格ReadOnly true

它运行良好,但这里我的问题是我的 datagridview 最后一列是readonly true,下一个控件是txtAmount1.Textand txtAmount2.Text

当我继续按 Tab 键时,焦点将转到txtAmount2.Text. 但 datagridview 的下一个是txtAmount1.Text. 重点是datagridview之后的imidite控件的下一个控件。焦点应该转到txtAmount1.Text控件。我应该怎么办?请帮我。

4

2 回答 2

2

有一个非字母数字键的预定义字符串常量列表。例如,{TAB}用于 Tab 键。这是包含所有常量的 MSDN 文章:https ://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.send%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

您也可以考虑SendKeys.SendWait改用。此方法将确保目标应用程序进程在您的应用程序继续之前发送密钥。例如:

SendKeys.SendWait("{TAB}");
于 2017-10-28T21:33:30.723 回答
1

用这个:

SendKeys.Send("\t");

于 2015-12-10T10:49:15.887 回答