Condividi tramite


DataGridView.CellClick Evento

Definizione

Si verifica quando viene fatto clic su una 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

Nell'esempio di codice seguente viene illustrato 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 fatto clic, 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ù grande illustrato 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 la cella viene fatto clic 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 richiede informazioni sulla posizione del mouse, usare l'evento CellMouseClick .

Per i clic in un DataGridViewCheckBoxCellevento , questo evento si verifica prima della modifica del valore della casella di controllo, quindi se non si vuole 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 di controllo, chiamare il metodo e passare il DataGridView.CommitEditCommit valore.

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

Si applica a

Vedi anche