C# DataGridView 关注最后一条记录

标签 c# datagridview

我有一个 DataGridView,我在其中扫描来自键盘模拟设备的支票。

当 keypreview 打开并且我正在等待输入时,用户无法输入任何内容,否则它会被我的方法捕获以读取支票阅读器的输入。所有这些都运行良好。

扫描后,我向 datagridview 添加一行,该行放在最后。

如何在每次添加后让 datagridview 滚动到底部?我结束了几百张支票,它在顶部。因此,每次扫描时,他们都不知道扫描的是什么。

这是我创建行的方法:

private void Timer1Tick(object sender, EventArgs e)
{
  _secondswaited += 1;
  if (_secondswaited == SecondsToWait)
  {
    timer1.Enabled = false;

    var psc = new ParseScannedCheckNumbers();
    if (psc.ParseCheck(_checkData))
    {
      label_Status.Text = @"Scan Next Check";

      var ct = checkTrans.IndividualCheck.NewIndividualCheckRow();
      ct.Date = DateTime.Now.ToShortDateString();
      ct.AccountNumber = GetAccountNumber(psc.BankAccountNumber);
      ct.Name = GetAccountName(ct.AccountNumber);
      ct.AccountBalance = GetAccountBalance(ct.AccountNumber);
      //ct.CheckAmount = 0;
      ct.BankRoutingNumber = psc.BankRoutingNumber;
      ct.BankAccountNumber = psc.BankAccountNumber;
      ct.CheckNumber = psc.CheckNumber;
      ct.Status = "Entered";
      checkTrans.IndividualCheck.Rows.Add(ct);
      var dgvcount = dgv_Checks.Rows.Count;
      **dgv_Checks.Rows[dgvcount - 1].Selected = true;**       
    }
    else
    {
      label_Status.Text = @"Scan failed. Rescan check.";
    }
    _checkData = string.Empty;
    _secondswaited = 0;

    var rs = new Registry.RegistrySettings();
    if (!rs.ScanChecksContinuous)
    {
      StopScanning();
      label_Status.Text = @"Success!";
      EditLastRowEntered();
    }

    label_ChecksScanned.Text = (dgv_Checks.RowCount - 1).ToString();
  }
}

粗体部分是我尝试移动到最后一行的地方,但没有成功。

谢谢!

最佳答案

我会使用 DataGridView.CurrentCell属性(property)。试试这个代替你有问题的行:

dgv_Checks.CurrentCell = dgv_Checks.Rows[dgvcount - 1].Cells[0];

关于C# DataGridView 关注最后一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5749983/

相关文章:

c# - 如何在 C# 中查找类的大小

c# - 在 C# 中将 Datagridview 导出到 Excel

c# - DataGridView 在排序时崩溃?

c# - 在 C# 中将 CheckBox 添加到 Datagridview header 并使用更改滚动条更改复选框的位置

c# - 如何在 dotnet core 中获取当前连接的 WiFi SSID 和信号强度?

c# - 尝试创建最小起订量对象

c# - 在ABP中从CrudAppService检索子实体

.net - 第二次调用表单时未处理表单加载事件

c# - 数据 GridView Winforms : FullRowSelect current cell still visible

c# - 无法将对象转换为其类型