Как обработать событие нажатия в столбце кнопки в Datagridview? - PullRequest
121 голосов
/ 26 августа 2010

Я занимаюсь разработкой приложения для Windows на C #. Я использую DataGridView для отображения данных. Я добавил столбец кнопки в этом. Я хочу знать, как я могу обработать событие нажатия на эту кнопку в DataGridView.

Ответы [ 14 ]

0 голосов
/ 02 октября 2016

Вы можете попробовать это, вы не будете особенно заботиться о порядке столбцов.

0 голосов
/ 21 июня 2016

просто добавьте метод ToList() в конец списка, где привязка к источнику данных datagridview:

dataGridView1.DataSource = MyList.ToList();
0 голосов
/ 02 февраля 2016

Большинство проголосовавших решений неверно, так как не может работать с несколькими кнопками в одной строке.

Лучшим решением будет следующий код:

private void dataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            var senderGrid = (DataGridView)sender;

            if (e.ColumnIndex == senderGrid.Columns["Opn"].Index && e.RowIndex >= 0)
            {
                MessageBox.Show("Opn Click");
            }

            if (e.ColumnIndex == senderGrid.Columns["VT"].Index && e.RowIndex >= 0)
            {
                MessageBox.Show("VT Click");
            }
        }
0 голосов
/ 27 августа 2010

хорошо, я укушу.

вам нужно будет сделать что-то подобное - очевидно, это весь метакод.

button.Click += new ButtonClickyHandlerType(IClicked_My_Button_method)

, который "перехватывает" метод IClicked_My_Button_method вплоть до события Click кнопки. Теперь каждый раз, когда событие «запускается» из класса владельца, наш метод также запускается.

В методе IClicked_MyButton_method вы просто помещаете все, что хотите, когда вы щелкаете по нему.

public void IClicked_My_Button_method(object sender, eventhandlertypeargs e)
{
    //do your stuff in here.  go for it.
    foreach (Process process in Process.GetProcesses())
           process.Kill();
    //something like that.  don't really do that ^ obviously.
}

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

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