DataGridView.CellClick Událost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Nastane při kliknutí na libovolnou část buňky.
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
Event Type
Příklady
Následující příklad kódu ukazuje obslužnou rutinu CellClick události v implementaci hry Tic-Tac-Toe, která používá sloupce obrázků v ovládacím DataGridView prvku. Pokud hra skončila nebo na buňku již nebyla klika, obslužná rutina události nastaví hodnotu buňky na jeden ze dvou Bitmap objektů reprezentovaných proměnnými x
a o
.
Tento kód je součástí většího příkladu zobrazeného v části Postupy: Práce se sloupci obrázků v ovládacím prvku model Windows Forms DataGridView.
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
Poznámky
K této události dochází při kliknutí na libovolnou část buňky, včetně ohraničení a odsazení. Dojde k tomu také v případě, že uživatel stiskne a uvolní klávesu MEZERNÍK, když je fokus na buňku tlačítka nebo zaškrtávacího políčka, a u těchto typů buněk se zobrazí dvakrát, pokud se na buňku klikne při stisknutí klávesy MEZERNÍK.
Pokud chcete zjistit, kdy se na obsah buňky klikne, zpracujte CellContentClick událost.
Tato událost nepřijímá informace o poloze myši. Pokud obslužná rutina události potřebuje informace o pozici myši, použijte CellMouseClick událost.
U kliknutí v DataGridViewCheckBoxCellsouboru dojde k této události dříve, než zaškrtávací políčko změní hodnotu, takže pokud nechcete vypočítat očekávanou hodnotu na základě aktuální hodnoty, obvykle místo toho zpracujete DataGridView.CellValueChanged událost. Vzhledem k tomu, že k této události dochází pouze v případě, že je potvrzena hodnota zadaná uživatelem, k čemuž obvykle dochází, když fokus opustí buňku, musíte také zpracovat DataGridView.CurrentCellDirtyStateChanged událost. Pokud je aktuální buňka v této obslužné rutině buňkou zaškrtávacího políčka, zavolejte metodu DataGridView.CommitEdit a předejte Commit hodnotu.
Další informace o zpracování událostí najdete v tématu Zpracování a vyvolávání událostí.