Проблема со столбцом кнопки просмотра таблицы данных - PullRequest
0 голосов
/ 31 августа 2011

Может ли кто-нибудь помочь с этим?

У меня есть DataGridView с тремя столбцами и одним столбцом кнопки.

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

Примечание. Я уже реализовал следующий обработчик события щелчка:

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
}

Есть ли альтернатива, кроме использования события щелчка ячейки?

Большое спасибо .....

Ответы [ 2 ]

1 голос
/ 01 сентября 2011

Предполагая, что у вас есть первые три столбца с данными, а затем четвертый столбец с кнопкой.

Быстрый и грязный способ извлечь данные:

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
    //If not fourth column then return (the button)
    if (e.ColumnIndex != 3)
        return;
    object col1 = dataGridView1.Rows[e.RowIndex].Cells[0].Value;
    object col2 = dataGridView1.Rows[e.RowIndex].Cells[1].Value;
    object col3 = dataGridView1.Rows[e.RowIndex].Cells[2].Value;
}

Вы получили нажатиестрока с e.RowIndex и кликнувший столбец с e.ColumnIndex.0 - первая строка / столбец.

1 голос
/ 01 сентября 2011

Попробуйте событие CellContentClick.

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

http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.cellcontentclick.aspx

Редактировать: Событие CellContentClick предоставляет параметры DataGridViewCellEventArgs, которые содержат точный столбец и строку, по которой был выполнен щелчок.По этой ссылке я приведу короткий пример.Я предполагаю, что значения, которые вы хотите передать, являются строками и находятся в столбцах 2, 3 и 4 (индексы 1, 2 и 3 соответственно). Обратите внимание, это не проверено!

if (DataGridView1.Columns[e.ColumnIndex] is DataGridViewButtonColumn && cellEvent.RowIndex != -1)
{
    DataRow currRow = DataGridView1.Rows[e.RowIndex];
    SendValuesSomewhereElse(Convert.ToString(currRow[1]), Convert.ToString(currRow[2]), Convert.ToString(currRow[3]));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...