DataGridView.CellClick Evento

Definizione

Si verifica quando si fa clic su qualsiasi parte di una cella.

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 evento

Esempio

L'esempio di codice seguente mostra un CellClick gestore eventi in un'implementazione del gioco Tic-Tac-Toe che usa colonne di immagine in un DataGridView controllo . A meno che il gioco non sia finito o che la cella sia già stata selezionata, il gestore eventi imposta il valore della cella su uno di due Bitmap oggetti rappresentati dalle variabili x e o.

Questo codice fa parte di un esempio più ampio illustrato in How to: Work with Image Columns in the Windows Forms DataGridView Control.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

Commenti

Questo evento si verifica quando viene fatto clic su qualsiasi parte di una cella, inclusi bordi e spaziatura interna. Si verifica anche quando l'utente preme e rilascia il tasto SPACE mentre una cella pulsante o una cella della casella di controllo ha lo stato attivo e si verificherà due volte per questi tipi di cella se si fa clic sulla cella mentre si preme il tasto SPACE.

Per determinare quando si fa clic sul contenuto della cella, gestire l'evento CellContentClick .

Questo evento non riceve informazioni sulla posizione del mouse. Se il gestore eventi necessita di informazioni sulla posizione del mouse, usare l'evento CellMouseClick .

Per i clic in un DataGridViewCheckBoxCell, questo evento si verifica prima che la casella di controllo cambi il valore, quindi se non si desidera calcolare il valore previsto in base al valore corrente, in genere si gestirà l'evento DataGridView.CellValueChanged . Poiché tale evento si verifica solo quando viene eseguito il commit del valore specificato dall'utente, che in genere si verifica quando lo stato attivo lascia la cella, è necessario gestire anche l'evento DataGridView.CurrentCellDirtyStateChanged . In tale gestore, se la cella corrente è una cella della casella di controllo, chiamare il DataGridView.CommitEdit metodo e passare il Commit valore.

Per altre informazioni su come gestire gli eventi, vedere Gestione e generazione di eventi.

Si applica a

Vedi anche