繁体   English   中英

C#DataGridView CellClick在点击时返回上一个索引

[英]C# DataGridView CellClick Returning Previous Index on Click

我有以下代码:

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次。 我使用的活动不正确吗? 我只想捕获一个按钮单击,而只有“ SearchColumn”中的那个按钮单击。

和往常一样谢谢。

如果我没记错的话,它与处理程序代码无关,与其他页面事件,母版页,验证等无关。某些事情在.net框架中劫持了您的请求,导致请求被延迟,但是我不记得在哪里

使用您的gridview和数据源,并将它们放在没有母版页或其他混淆因素的单独文件中,然后看问题是否消失。

如果现在可以正常工作,请从原始页面添加组件,直到可以再次复制问题为止,或者返回原始页面并逐步完成所有操作。 这至少发生在我身上两次,我只记得那件事似乎完全无关。

我不仅提供了一个毫无用处的答案,而且我再次证明了为什么我应该真正保留这个废话的日志。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM