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, když kliknete 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 není over nebo buňka již byla kliknuta, 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 uvedené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í, když kliknete na libovolnou část buňky, včetně ohraničení a odsazení. K tomu dochází také v případě, že uživatel stiskne a uvolní klávesu MEZERNÍK, když je buňka tlačítka nebo buňka zaškrtávacího políčka fokus, a pro tyto typy buněk dojde dvakrát, pokud je buňka při stisknutí klávesy MEZERA.
Pokud chcete zjistit, kdy je obsah buňky kliknut, 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 poloze myši, použijte CellMouseClick událost.
U kliknutí na DataGridViewCheckBoxCellpoložku , tato událost nastane před zaškrtávacím políkem změní hodnotu, takže pokud nechcete vypočítat očekávanou hodnotu na základě aktuální hodnoty, obvykle zpracujete DataGridView.CellValueChanged událost. Vzhledem k tomu, že k události dochází pouze v případě, že je potvrzena hodnota zadaná uživatelem, která obvykle nastane, když fokus opustí buňku DataGridView.CurrentCellDirtyStateChanged , musíte také zpracovat událost. Pokud je aktuální buňka v této obslužné rutině buňka zaškrtávacím políčku, zavolejte metodu DataGridView.CommitEdit a předejte Commit hodnotu.
Další informace o zpracování událostí naleznete v tématu Zpracování a vyvolávání událostí.