5

I am having a button cell in datagridview.When that button is clicked,another datagridview should be visible .For every button click in the button column,the data in new datagridview should be differed.I dont know how to implement the button click event which differs for every row.Please help me with the sample code.

1

2 Answers 2

7

You can't implement a button clicked event for button cells in a DataGridViewButtonColumn. Instead, you use the DataGridView's CellClicked event and determine if the event fired for a cell in your DataGridViewButtonColumn. Use the event's DataGridViewCellEventArgs.RowIndex property to find out which row was clicked.

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) {
    // Ignore clicks that are not in our 
    if (e.ColumnIndex == dataGridView1.Columns["MyButtonColumn"].Index && e.RowIndex >= 0) {
        Console.WriteLine("Button on row {0} clicked", e.RowIndex);
    }
}

The MSDN documentation on the DataGridViewButtonColumn class has a more complete example.

Sign up to request clarification or add additional context in comments.

1 Comment

I would use dataGridView1_CellContentClick. That way it would only occur if the button itself has been clicked, but not the padding space.
4

use dataGridView1_CellContentClick instead of dataGridView1_CellClick

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{

    if (e.ColumnIndex == 8) //make sure button index here
    {
          //write your code here
    }

}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.