DataGridView.CellClick DataGridView.CellClick DataGridView.CellClick DataGridView.CellClick Event

Definición

Se produce cuando se hace clic en cualquier parte de una celda.Occurs when any part of a cell is clicked.

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 

Ejemplos

En el ejemplo de código siguiente CellClick se muestra un controlador de eventos en una implementación de juego de tres Tac-Toe que DataGridView usa columnas de imagen en un control.The following code example shows a CellClick event handler in a Tic-Tac-Toe game implementation that uses image columns in a DataGridView control. A menos que el juego esté por encima o se haya hecho clic en la celda, el controlador de eventos establece el valor de Bitmap la celda en uno de x los odos objetos representados por las variables y.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.

Este código forma parte de un ejemplo más grande que se muestra en cómo: Trabajar con columnas de imagen en el controlDataGridView Windows Forms.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

Comentarios

Este evento se produce cuando se hace clic en cualquier parte de una celda, incluidos los bordes y el relleno.This event occurs when any part of a cell is clicked, including borders and padding. También se produce cuando el usuario presiona y suelta la tecla barra espaciadora 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 barra espaciadora.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.

Para determinar cuándo se hace clic en el contenido de la celda CellContentClick , controle el evento.To determine when the cell contents are clicked, handle the CellContentClick event.

Este evento no recibe información sobre la posición del mouse.This event does not receive information about the mouse position. Si el controlador de eventos necesita información sobre la posición del mouse, CellMouseClick utilice el evento.If the event handler needs information about the mouse position, use the CellMouseClick event.

En el caso de los DataGridViewCheckBoxCellclics en, este evento se produce antes de que la casilla cambie de valor, por lo que si no desea calcular el valor esperado basándose en el valor actual DataGridView.CellValueChanged , normalmente tratará el evento en su lugar.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. Dado que ese evento solo se produce cuando se confirma el valor especificado por el usuario, que normalmente se produce cuando el foco abandona la celda, DataGridView.CurrentCellDirtyStateChanged también debe controlar el evento.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. En ese controlador, si la celda actual es una celda de casilla, llame al DataGridView.CommitEdit método y pase el Commit valor.In that handler, if the current cell is a check box cell, call the DataGridView.CommitEdit method and pass in the Commit value.

Para obtener más información acerca de cómo controlar eventos, vea controlar y provocar eventos.For more information about how to handle events, see Handling and Raising Events.

Se aplica a

Consulte también: