Udostępnij za pośrednictwem


DataGridView.CellClick Zdarzenie

Definicja

Występuje po kliknięciu dowolnej części komórki.

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 

Typ zdarzenia

Przykłady

Poniższy przykład kodu przedstawia procedurę CellClick obsługi zdarzeń w implementacji gry Tic-Tac-Toe, która używa kolumn obrazu w kontrolce DataGridView . Jeśli gra nie została już kliknięta lub komórka została już kliknięta, program obsługi zdarzeń ustawia wartość komórki na jeden z dwóch Bitmap obiektów reprezentowanych przez zmienne x i o.

Ten kod jest częścią większego przykładu pokazanego w temacie How to: Work with Image Columns in the Windows Forms DataGridView Control (Jak pracować z kolumnami obrazów w kontrolce 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

Uwagi

To zdarzenie występuje po kliknięciu dowolnej części komórki, w tym obramowania i wypełnienia. Występuje również, gdy użytkownik naciska i zwalnia klawisz SPACJI, gdy komórka przycisku lub komórka pola wyboru ma fokus, i wystąpi dwa razy dla tych typów komórek, jeśli komórka zostanie kliknięta podczas naciśnięcia klawisza SPACJA.

Aby określić, kiedy zawartość komórki jest klikana, obsłuż CellContentClick zdarzenie.

To zdarzenie nie odbiera informacji o położeniu myszy. Jeśli program obsługi zdarzeń potrzebuje informacji o położeniu myszy, użyj CellMouseClick zdarzenia .

W przypadku kliknięć w elemencie DataGridViewCheckBoxCellto zdarzenie występuje przed zmianą wartości pola wyboru, więc jeśli nie chcesz obliczyć oczekiwanej wartości na podstawie bieżącej wartości, zazwyczaj będzie obsługiwane zdarzenie DataGridView.CellValueChanged . Ponieważ to zdarzenie występuje tylko wtedy, gdy zatwierdzona jest wartość określona przez użytkownika, co zwykle występuje, gdy fokus opuszcza komórkę, należy również obsłużyć DataGridView.CurrentCellDirtyStateChanged zdarzenie. W tej procedurze obsługi, jeśli bieżąca komórka jest komórką pola wyboru, wywołaj DataGridView.CommitEdit metodę i przekaż Commit wartość.

Aby uzyskać więcej informacji na temat obsługi zdarzeń, zobacz Obsługa i podnoszenie zdarzeń.

Dotyczy

Zobacz też