DataGridView.CellClick Event
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Occurs when any part of a cell is clicked.
public:
event System::Windows::Forms::DataGridViewCellEventHandler ^ CellClick;
public event System.Windows.Forms.DataGridViewCellEventHandler CellClick;
public event System.Windows.Forms.DataGridViewCellEventHandler? CellClick;
member this.CellClick : System.Windows.Forms.DataGridViewCellEventHandler
Public Custom Event CellClick As DataGridViewCellEventHandler
Event Type
Examples
The following code example shows a CellClick event handler in a Tic-Tac-Toe game implementation that uses image columns in a DataGridView control. Unless the game is over or the cell has already been clicked, the event handler sets the cell value to one of two Bitmap objects represented by the variables x
and o
.
This code is part of a larger example shown in How to: Work with Image Columns in the Windows Forms DataGridView Control.
void dataGridView1_CellClick( Object^ sender, DataGridViewCellEventArgs^ e )
{
if ( turn->Equals( gameOverString ) )
{
return;
}
DataGridViewImageCell^ cell = dynamic_cast<DataGridViewImageCell^>(dataGridView1->Rows[ e->RowIndex ]->Cells[ e->ColumnIndex ]);
if ( cell->Value == blank )
{
if ( IsOsTurn() )
{
cell->Value = o;
}
else
{
cell->Value = x;
}
ToggleTurn();
}
if ( IsAWin( cell ) )
{
turn->Text = gameOverString;
}
}
private void dataGridView1_CellClick(object sender,
DataGridViewCellEventArgs e)
{
if (turn.Text.Equals(gameOverString)) { return; }
DataGridViewImageCell cell = (DataGridViewImageCell)
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
if (cell.Value == blank)
{
if (IsOsTurn())
{
cell.Value = o;
}
else
{
cell.Value = x;
}
ToggleTurn();
}
if (IsAWin())
{
turn.Text = gameOverString;
}
}
Private Sub dataGridView1_CellClick(ByVal sender As Object, _
ByVal e As DataGridViewCellEventArgs) _
Handles dataGridView1.CellClick
If turn.Text.Equals(gameOverString) Then Return
Dim cell As DataGridViewImageCell = _
CType(dataGridView1.Rows(e.RowIndex). _
Cells(e.ColumnIndex), DataGridViewImageCell)
If (cell.Value Is blank) Then
If IsOsTurn() Then
cell.Value = o
Else
cell.Value = x
End If
ToggleTurn()
ToolTip(e)
End If
If IsAWin() Then
turn.Text = gameOverString
End If
End Sub
Remarks
This event occurs when any part of a cell is clicked, including borders and padding. It also occurs when the user presses and releases the SPACE key while a button cell or check box cell has focus, and will occur twice for these cell types if the cell is clicked while pressing the SPACE key.
To determine when the cell contents are clicked, handle the CellContentClick event.
This event does not receive information about the mouse position. If the event handler needs information about the mouse position, use the CellMouseClick event.
For clicks in a DataGridViewCheckBoxCell, this event occurs before the check box changes value, so if you do not want to calculate the expected value based on the current value, you will typically handle the DataGridView.CellValueChanged event instead. Because that event occurs only when the user-specified value is committed, which typically occurs when focus leaves the cell, you must also handle the DataGridView.CurrentCellDirtyStateChanged event. In that handler, if the current cell is a check box cell, call the DataGridView.CommitEdit method and pass in the Commit value.
For more information about how to handle events, see Handling and Raising Events.