У меня есть 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 ответа
Вы можете реализовать это самостоятельно.
В вашем конструкторе может быть метод HookEvents (), который связывает такие события.
Или в конструкторе форм щелкните вид сетки, чтобы выбрать его, перейдите в окно свойств и щелкните желтый значок молнии, чтобы найти список событий. Затем прокрутите вниз и найдите событие CellEndEdit и дважды щелкните его - это подключит событие для вас.
Чтобы подключить его самостоятельно, это может выглядеть так:
class A : Form
{
public A()
{
Initialize();
HookEvents();
}
private void HookEvents()
{
dataGridView1.CellEndEdit += dataGridView1_CellEndEdit;
}
}
Я очень сомневаюсь, что ваше решение сработает.
Дело не в том, где вы размещаете подписку, а в том, как вы это делаете.
Брэндон, вы объявляете EventHandler, то есть функцию, отвечающую за выполнение того, что вы хотите сделать в случае этого события «dataGridView1_CellEndEdit», но вы не подписываетесь на это событие. Также в вашей функции вы передаете неправильные параметры.
Простое решение - либо подписаться из окна дизайнера, либо сделать это с помощью кода:
Напишите «dataGridView1.CellEndEdit + =», а затем дважды нажмите кнопку TAB. Это должно создать код для подписки на событие и правильный делегат для его обработки.
Похожие вопросы
Новые вопросы
c#
C # (произносится как «резкий») - это высокоуровневый, статически типизированный язык программирования с несколькими парадигмами, разработанный Microsoft. Код C # обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, включая, среди прочего, .NET Framework, .NET Core и Xamarin. Используйте этот тег для вопросов о коде, написанном на C # или в формальной спецификации C #.