DataGridView.CellClick Událost

Definice

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í.

Platí pro

Viz také