У меня есть представление таблицы данных с четырьмя столбцами:

productid 
productname
productprice
buy (this is button column )

Можно ли найти событие нажатия кнопки столбца? Я имею в виду, что если я нажму на кнопку строки 1, соответствующие значения строки будут перенесены в другую форму.

Если я нажму кнопку строки 2, соответствующие значения будут перенесены в другую форму. Я делаю приложения WinForms. Приветствуются любые идеи или примеры кода.

0
Enigma State 29 Авг 2011 в 14:01

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);
    }
}
2
David Hall 29 Авг 2011 в 16:03

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

0
pvaju896 29 Авг 2011 в 11:34