У меня есть представление таблицы данных с четырьмя столбцами:
productid
productname
productprice
buy (this is button column )
Можно ли найти событие нажатия кнопки столбца? Я имею в виду, что если я нажму на кнопку строки 1, соответствующие значения строки будут перенесены в другую форму.
Если я нажму кнопку строки 2, соответствующие значения будут перенесены в другую форму. Я делаю приложения WinForms. Приветствуются любые идеи или примеры кода.
2 ответа
Ответ на этот вопрос находится на странице MSDN для DataGridViewButtonColumn .
Вам необходимо обрабатывать события CellClick или CellContentClick DataGridView.
Чтобы прикрепить обработчик:
dataGridView1.CellClick += new DataGridViewCellEventHandler(dataGridView1_CellClick);
И код в методе, который обрабатывает событие
void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
// Check that the button column was clicked
if (dataGridView1.Columns[e.ColumnIndex].Name == "MyButtonColumn")
{
// Here you call your method that deals with the row values
// you can use e.RowIndex to find the row
// I also use the row's databounditem property to get the bound
// object from the DataGridView's datasource - this only works with
// a datasource for the control but 99% of the time you should use
// a datasource with this control
object item = dataGridView1.Rows[e.RowIndex].DataBoundItem;
// I'm also just leaving item as type object but since you control the form
// you can usually safely cast to a specific object here.
YourMethod(item);
}
}
Используя ячейку проверки, вы можете получить (столбец и строка ячейки). Инициализируйте кнопку как объект кнопки формы выигрыша, а также добавьте обработчик, который вызывает событие щелчка того же самого.
Похожие вопросы
Новые вопросы
c#
C # (произносится как «резкий») - это высокоуровневый, статически типизированный язык программирования с несколькими парадигмами, разработанный Microsoft. Код C # обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, включая, среди прочего, .NET Framework, .NET Core и Xamarin. Используйте этот тег для вопросов о коде, написанном на C # или в формальной спецификации C #.