DataGridView и событие CellEndEdit - PullRequest
       17

DataGridView и событие CellEndEdit

0 голосов
/ 27 января 2010

У меня есть DataGridView, и я хотел бы подключиться к событию CellEndEdit. Мне удалось успешно подключиться к событию CellContentClick, но у меня проблемы с CellEndEdit.

Я добавил следующий код в мой Form1.cs файл:

private void dataGridView1_CellEndEdit(object sender, DataGridViewCellCancelEventArgs e)
        {
            dataGridView1[0, 0].Value = "Changed";
        }

С этим кодом ничего не происходит, когда я закончу редактирование ячейки. Есть ли что-то еще, что мне нужно сделать, чтобы успешно подключиться к этому событию? Я вижу, что CellContentClick имеет

this.dataGridView1.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellContentClick);

строка кода в файле Form1.Designer.cs, но я попытался имитировать это для CellEndEdit и получил ошибку компиляции

(нет перегрузки для делегата соответствий 'dataGridView1_CellEndEdit') 'System.Windows.Forms.DataGridViewCellEventHandler')

Ответы [ 2 ]

2 голосов
/ 27 января 2010

Вы можете реализовать это самостоятельно.

В вашем конструкторе у вас может быть метод HookEvents (), который связывает такие события.

Или в конструкторе формы щелкните сетку, чтобы выбрать ее, перейдите в окно свойств и щелкните желтую молнию, чтобы найти список событий. Затем прокрутите вниз и найдите событие CellEndEdit и дважды щелкните по нему - это свяжет событие для вас.

Чтобы подключить это самостоятельно, это может выглядеть так:

class A : Form
{
  public A()
  {
    Initialize();
    HookEvents();
  }

  private void HookEvents()
  {
    dataGridView1.CellEndEdit += dataGridView1_CellEndEdit;
  }
}
0 голосов
/ 14 июня 2010

Я очень сомневаюсь, что ваше решение будет работать.

Вопрос не в том, где вы размещаете подписку, а в том, как вы это делаете.

Брэндон, вы объявляете EventHandler, который является функцией, ответственной за выполнение того, что вы хотите сделать в случае этого события «dataGridView1_CellEndEdit», но вы не подписываетесь на событие. Также в вашей функции вы передаете неправильные параметры.

Простое решение - подписаться из окна дизайнера или с помощью кода:

напишите «dataGridView1.CellEndEdit + =», а затем дважды нажмите кнопку TAB. Это должно создать код для подписки на событие и правильный делегат для его обработки.

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