DataGridView.CellClick Evento

Definizione

Si verifica quando viene fatto clic su una qualsiasi parte di una cella.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 

Tipo evento

DataGridViewCellEventHandler

Esempio

L'esempio di codice seguente illustra un CellClick gestore eventi in un'implementazione del gioco tic-tac-toe che usa colonne di immagini in un DataGridView controllo.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 meno che il gioco non sia superato o non sia già stato fatto clic sulla cella, il gestore dell'evento imposta il valore della cella su uno dei due Bitmap oggetti rappresentati dalle variabili x e o .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.

Questo codice fa parte di un esempio più ampio illustrato in procedura: usare le colonne di immagini nel controllo DataGridView Windows Form.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 una parte di una cella, inclusi i bordi e la spaziatura interna.This event occurs when any part of a cell is clicked, including borders and padding. Si verifica anche quando l'utente preme e rilascia il tasto spazio mentre una cella del 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 quando si preme il tasto barra spaziatrice.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.

Per determinare quando viene fatto clic sul contenuto della cella, gestire l' CellContentClick evento.To determine when the cell contents are clicked, handle the CellContentClick event.

Questo evento non riceve informazioni sulla posizione del mouse.This event does not receive information about the mouse position. Se il gestore dell'evento necessita di informazioni sulla posizione del mouse, utilizzare l' CellMouseClick evento.If the event handler needs information about the mouse position, use the CellMouseClick event.

Per i clic in un oggetto DataGridViewCheckBoxCell , questo evento si verifica prima che il valore della casella di controllo cambi, quindi, se non si desidera calcolare il valore previsto in base al valore corrente, in genere si gestirà l' DataGridView.CellValueChanged evento.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. 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 esce dalla cella, è necessario gestire anche l' DataGridView.CurrentCellDirtyStateChanged 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. In tale gestore, se la cella corrente è una cella della casella di controllo, chiamare il DataGridView.CommitEdit metodo e passare il Commit valore.In that handler, if the current cell is a check box cell, call the DataGridView.CommitEdit method and pass in the Commit value.

Per altre informazioni su come gestire gli eventi, vedere la gestione e generazione di eventi.For more information about how to handle events, see Handling and Raising Events.

Si applica a