c# - 如何控制 Datagridview 中的 SendKeys.Send {"tab"} 属性?

标签 c# datagridview sendkeys

我在 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.TexttxtAmount2.Text

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

最佳答案

有一个非字母数字键的预定义字符串常量列表。例如,{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。此方法将确保目标应用程序在您的应用程序继续之前处理发送的 key 。例如:

SendKeys.SendWait("{TAB}");

关于c# - 如何控制 Datagridview 中的 SendKeys.Send {"tab"} 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14875058/

相关文章:

c# - 通过编码在 C# .Net 中自动生成索引

c# - 从 View 中调用 Controller 操作

c# - 将对象属性初始化为 DataGridView 中另一个对象属性的值

vb.net - 在一个数据 GridView 中显示父数据表并在另一个数据 GridView 中显示子数据表元素?

c# - 使用 SendKeys 发送 Windows key

Python Selenium - 属性错误 : WebElement object has no attribute sendKeys in textarea

c# - 依赖属性数据上下文

c# - 为什么 PartialAsync 不调用相应的 Controller 方法?

c# - 更改 dataGridView CellFormatting 中单元格的文本

excel - 默认情况下在切片器上启用多选