DataGridView.CellClick Evento
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Se produce cuando se hace clic en cualquier parte de una celda.
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
Tipo de evento
Ejemplos
En el ejemplo de código siguiente se muestra un CellClick controlador de eventos en una implementación del juego Tic-Tac-Toe que usa columnas de imagen en un DataGridView control . A menos que se supere el juego o ya se haya hecho clic en la celda, el controlador de eventos establece el valor de celda en uno de los dos Bitmap objetos representados por las variables x
y o
.
Este código forma parte de un ejemplo más grande que se muestra en Cómo: Trabajar con columnas de imagen en el control DataGridView de Windows Forms.
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
Comentarios
Este evento se produce cuando se hace clic en cualquier parte de una celda, incluidos los bordes y el relleno. También se produce cuando el usuario presiona y suelta la tecla SPACE mientras una celda de botón o una celda de casilla tiene el foco, y se producirá dos veces para estos tipos de celda si se hace clic en la celda mientras se presiona la tecla SPACE.
Para determinar cuándo se hace clic en el contenido de la celda, controle el CellContentClick evento.
Este evento no recibe información sobre la posición del mouse. Si el controlador de eventos necesita información sobre la posición del mouse, use el CellMouseClick evento .
Para los clics en , DataGridViewCheckBoxCelleste evento se produce antes de que la casilla cambie el valor, por lo que si no desea calcular el valor esperado en función del valor actual, normalmente controlará el DataGridView.CellValueChanged evento en su lugar. Dado que ese evento solo se produce cuando se confirma el valor especificado por el usuario, que normalmente se produce cuando el foco sale de la celda, también debe controlar el DataGridView.CurrentCellDirtyStateChanged evento. En ese controlador, si la celda actual es una celda de casilla, llame al DataGridView.CommitEdit método y pase el Commit valor.
Para obtener más información acerca de cómo controlar eventos, vea controlar y provocar eventos.