c# datagridviewcellclick在点击时返回上一个索引

本文关键字:返回 上一个 索引 datagridviewcellclick | 更新日期: 2023-09-27 17:50:03

我有以下代码:

private void dgv_Checks_CellClick(object sender, DataGridViewCellEventArgs e)
{
  DoThis();
  if (e.RowIndex < 0)
  return;
  if (dgv_Checks.CurrentCell.OwningColumn.Name == "CopyBalance")
    dgv_Checks.Rows[e.RowIndex].Cells["CheckAmountColumn"].Value = dgv_Checks.Rows[e.RowIndex].Cells["AccountBalanceColumn"].Value;

  // ****** THIS IS WHERE I AM HAVING ISSUES ******
  if (e.RowIndex > -1 && dgv_Checks.Columns[e.ColumnIndex].Name == "SearchColumn")
  {
    var acctno = dgv_Checks.Rows[e.RowIndex].Cells["AccountNumberColumn"].Value.ToString().Trim();
    if (acctno.Length == 7)
    {
      var acctname = GetAccountName(acctno);
      if (acctname.Trim().Length > 0)
      {
        dgv_Checks.Rows[e.RowIndex].Cells["NameColumn"].Value = acctname;
        dgv_Checks.Rows[e.RowIndex].Cells["AccountBalanceColumn"].Value = GetAccountBalance(acctno);
      }
      else
      {
        AccountSearchScreen(dgv_Checks.CurrentRow);
      }
    }
    else
    {
      AccountSearchScreen(dgv_Checks.CurrentRow);
    }
  }
    dgv_Checks.Rows[e.RowIndex].Cells["CheckAmountColumn"].Value = dgv_Checks.Rows[e.RowIndex].Cells["AccountBalanceColumn"].Value;
}

当它到达这一行时:

if (e.RowIndex > -1 && dgv_Checks.Columns[e.ColumnIndex].Name == "SearchColumn")

我要回到前一个单元格的索引,所以我总是1点击后面。我没有使用正确的事件吗?我只是想捕获一个按钮点击,只有一个在"搜索列"。

谢谢你。

c# datagridviewcellclick在点击时返回上一个索引

如果我没记错的话,它与处理程序代码无关,而与其他页面事件、母版页面、验证等有关。有些东西劫持了你的请求在。net框架的某个地方,导致它得到延迟,但我不记得在哪里…

把你的网格视图和数据源放在一个单独的文件中,没有母版页或其他混淆因素,看看问题是否消失了。

如果它现在正常工作,要么从原始页面添加组件,直到您可以再次复制问题,要么返回到原始页面并逐步执行它所做的一切。这种事至少在我身上发生过两次,而我所能记得的是,这似乎是完全无关的事情。

我不仅提供了一个相当无用的答案,而且我再次证明了为什么我真的应该保存一个(b)日志的垃圾…