DataGridView.CellClick Ereignis
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Tritt ein, wenn auf einen Teil einer Zelle geklickt wird.
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
Ereignistyp
Beispiele
Das folgende Codebeispiel zeigt einen CellClick Ereignishandler in einer Tic-Tac-Toe-Spielimplementierung, die Bildspalten in einem DataGridView Steuerelement verwendet. Sofern das Spiel nicht beendet ist oder auf die Zelle bereits geklickt wurde, legt der Ereignishandler den Zellwert auf eines von zwei Bitmap Objekten fest, die durch die Variablen x
und o
dargestellt werden.
Dieser Code ist Teil eines größeren Beispiels, das unter Vorgehensweise: Arbeiten mit Bildspalten im Windows Forms DataGridView-Steuerelement gezeigt wird.
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 Beliebigen Teil einer Zelle geklickt wird, einschließlich Rahmen und Auffüllung. Es tritt auch auf, wenn der Benutzer die LEERTASTE drückt und loslässt, während eine Schaltflächenzelle oder Kontrollkästchenzelle den Fokus hat, und tritt für diese Zelltypen zweimal auf, wenn die Zelle beim Drücken der LEERTASTE geklickt wird.
Um zu bestimmen, wann auf den Zellinhalt geklickt wird, behandeln Sie das CellContentClick Ereignis.
Dieses Ereignis empfängt keine Informationen zur Mausposition. Wenn der Ereignishandler Informationen zur Mausposition benötigt, verwenden Sie das CellMouseClick -Ereignis.
Bei Klicks in einem DataGridViewCheckBoxCelltritt dieses Ereignis auf, bevor das Kontrollkästchen den Wert ändert. Wenn Sie also den erwarteten Wert nicht basierend auf dem aktuellen Wert berechnen möchten, behandeln Sie das Ereignis in der DataGridView.CellValueChanged Regel stattdessen. Da dieses Ereignis nur auftritt, wenn der vom Benutzer angegebene Wert committet wird, was in der Regel auftritt, wenn der Fokus die Zelle verlässt, müssen Sie auch das DataGridView.CurrentCellDirtyStateChanged Ereignis behandeln. Wenn es sich bei der aktuellen Zelle um eine Kontrollkästchenzelle handelt, rufen Sie in diesem Handler die DataGridView.CommitEdit -Methode auf, und übergeben Sie den Commit Wert.
Weitere Informationen zum Behandeln von Ereignissen finden Sie unter behandeln und Auslösen von Ereignissen.