DataGridView.CellClick Ereignis

Definition

Tritt ein, wenn auf einen Teil einer Zelle geklickt wird.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 

Beispiele

Das folgende Codebeispiel zeigt einen CellClick-Ereignishandler in einer Tic-Tac-Toe-Spiel Implementierung, bei der Bild Spalten in einem DataGridView-Steuerelement verwendet werden.The following code example shows a CellClick event handler in a Tic-Tac-Toe game implementation that uses image columns in a DataGridView control. Wenn das Spiel nicht mehr vorhanden ist oder bereits auf die Zelle geklickt wurde, legt der Ereignishandler den Zellwert auf eines von zwei Bitmap-Objekten fest, die durch die Variablen x und o dargestellt werden.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.

Dieser Code ist Teil eines größeren Beispiels, das in gewusst wie: Arbeiten Sie mit Bild Spalten im Windows Forms DataGridView-Steuerelement.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

Hinweise

Dieses Ereignis tritt auf, wenn auf einen Teil einer Zelle geklickt wird, einschließlich Rahmen und Padding.This event occurs when any part of a cell is clicked, including borders and padding. Sie tritt auch auf, wenn der Benutzer die LEERTASTE drückt und freigibt, während eine Schaltflächen Zelle oder eine Kontrollkästchen Zelle den Fokus besitzt, und für diese Zellentypen zweimal auftritt, wenn auf die Zelle geklickt wird, während die Leertaste gedrückt wird.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.

Behandeln Sie das Ereignis CellContentClick, um zu bestimmen, wann auf den Zellen Inhalt geklickt wird.To determine when the cell contents are clicked, handle the CellContentClick event.

Dieses Ereignis empfängt keine Informationen über die Mausposition.This event does not receive information about the mouse position. Wenn der Ereignishandler Informationen über die Mausposition benötigt, verwenden Sie das CellMouseClick-Ereignis.If the event handler needs information about the mouse position, use the CellMouseClick event.

Bei Klicks in einem DataGridViewCheckBoxCell tritt dieses Ereignis auf, bevor der Wert des Kontrollkästchens geändert wird. Wenn Sie also nicht den erwarteten Wert auf Grundlage des aktuellen Werts berechnen möchten, behandeln Sie in der Regel stattdessen das DataGridView.CellValueChanged-Ereignis.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. Da dieses Ereignis nur auftritt, wenn für den benutzerdefinierten Wert ein Commit ausgeführt wird. Dies tritt normalerweise auf, wenn der Fokus die Zelle verlässt, müssen Sie auch das DataGridView.CurrentCellDirtyStateChanged-Ereignis behandeln.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. Wenn es sich bei diesem Handler um eine Kontrollkästchen Zelle handelt, müssen Sie die DataGridView.CommitEdit-Methode aufzurufen und den Commit-Wert übergeben.In that handler, if the current cell is a check box cell, call the DataGridView.CommitEdit method and pass in the Commit value.

Weitere Informationen zum Behandeln von Ereignissen finden Sie unter behandeln und Auslösen von Ereignissen.For more information about how to handle events, see Handling and Raising Events.

Gilt für:

Siehe auch