столбец кнопки просмотра данных - PullRequest
2 голосов
/ 18 января 2012

У меня есть столбец кнопки на DataGridView, и я пытаюсь обработать событие Button.Click, но ничего не происходит, когда я нажимаю кнопку.Любая помощь?

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
    MessageBox.Show(e.ColumnIndex.ToString());
    if (e.ColumnIndex == 5)
    {
        MessageBox.Show((e.RowIndex + 1) + "  Row  " + (e.ColumnIndex + 1) + "  Column button clicked ");
    }
}

Ответы [ 3 ]

2 голосов
/ 18 января 2012

Я попробовал ваш образец, и он работает.Вы действительно связали событие с вашим DataGridView?

Пожалуйста, проверьте метод InitializeComponent() в вашем классе <YourFormName>.Designer.cs.Действительно ли он имеет

this.dataGridView1.CellClick += 
  new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellClick);

, и вы не удаляете обработчик в другом месте кода?

Страница MSDN DataGridViewButtonColumn имеет следующее:

Чтобы реагировать на нажатия пользовательских кнопок, обрабатывайте событие DataGridView.CellClick или DataGridView.CellContentClick.В обработчике событий вы можете использовать свойство DataGridViewCellEventArgs.ColumnIndex, чтобы определить, произошел ли щелчок в столбце кнопки.Вы можете использовать свойство DataGridViewCellEventArgs.RowIndex, чтобы определить, произошел ли щелчок в ячейке кнопки, а не в заголовке столбца.

1 голос
/ 09 сентября 2014

Позвольте мне получить / уточнить, что у вас есть кнопка в каждой строке представления данных в формах c # windows. Итак, чтобы получить событие нажатия кнопки в datagridview, я покажу вам пример кода на C #, который отлично сработал для меня! Ниже приведен мой c # код события нажатия кнопки просмотра данных, который работал нормально:

private void dgTasks_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {
        var button = (DataGridView)sender;
        if (button.Columns[6] is DataGridViewColumn && e.RowIndex >= 0)
        {
       MessageBox.Show("You have clicked Cancel button of a row of datagridview ", "Task", MessageBoxButtons.OK, MessageBoxIcon.Information); 
        }
        }

Где dgTasks - это имя моей таблицы данных в c # winforms. button.Columns [6] - это номер столбца моей таблицы данных, где у меня есть столбец с именем кнопки: btnCancel , текст заголовка: ОТМЕНА и текст: Отмена . Это всего лишь образец! Надеюсь, вы найдете это полезным.!

0 голосов
/ 18 января 2012

Похоже, ваше мероприятие зарегистрировано неправильно. Чтобы проверить в Designer, выделите элемент управления DataGridView и выберите Properties, в разделе Events проверьте, есть ли в событии CellClick запись, если нет, то должен быть доступен выпадающий список, в котором должно быть указано ваше событие - выберите это и должно решить вашу проблему.

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