C # DataGridView CellClick Возвращение предыдущего индекса по клику - PullRequest
0 голосов
/ 12 апреля 2011

У меня есть следующий код:

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».

Спасибо, как обычно.

1 Ответ

0 голосов
/ 13 апреля 2011

Если я правильно помню, это не имеет никакого отношения к коду обработчика и как-то связано с другими событиями страницы, мастер-страницами, проверкой и т. Д. Что-то перехватывает ваш запрос где-то в .net framework, что приводит к его получениюотложено, но я не могу вспомнить, где ...

Возьмите свое представление сетки и источник данных и поместите их в отдельный файл без главных страниц или других мешающих факторов и посмотрите, исчезнет ли проблема.

Если теперь он работает нормально, либо добавляйте компоненты со своей исходной страницы, пока не сможете повторить проблему, либо вернитесь на исходную страницу и выполните все, что она делает.Это случалось со мной, по крайней мере, дважды, и все, что я помню, это то, что кажется совершенно не связанным.

Я не только дал довольно бесполезный ответ, но еще раз продемонстрировал, почему я должен действительноведите (б) журнал этого дерьма ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...