DataGridView.CellClick Событие

Определение

Происходит при щелчке любой части ячейки.

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 

Тип события

Примеры

В следующем примере кода показан CellClick обработчик событий в реализации игры Tic-Tac-Toe, использующего столбцы изображений в элементе DataGridView управления. Если игра не завершена или ячейка уже была щелкнуна, обработчик событий задает значение ячейки одному из двух Bitmap объектов, представленных переменными x и o.

Этот код является частью более крупного примера, показанного в разделе "Практическое руководство. Работа с столбцами изображений в элементе управления DataGridView в Windows Forms".

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

Комментарии

Это событие возникает при щелчке любой части ячейки, включая границы и заполнение. Это также происходит, когда пользователь нажимает и освобождает клавишу SPACE во время нажатия кнопки или ячейки флажка с фокусом, и будет происходить дважды для этих типов ячеек, если ячейка щелкается при нажатии клавиши ПРОБЕЛ.

Чтобы определить, когда содержимое ячейки щелкается, обработайте CellContentClick событие.

Это событие не получает сведения о положении мыши. Если обработчику событий требуются сведения о положении мыши, используйте CellMouseClick событие.

Для щелчков в элементе DataGridViewCheckBoxCell, это событие возникает перед изменением значения флажка, поэтому если вы не хотите вычислять ожидаемое значение на основе текущего значения, обычно будет обрабатываться DataGridView.CellValueChanged событие. Так как это событие происходит только при фиксации указанного пользователем значения, которое обычно возникает при выходе фокуса из ячейки, необходимо также обработать DataGridView.CurrentCellDirtyStateChanged событие. В этом обработчике, если текущая ячейка является ячейкой флажка, вызовите DataGridView.CommitEdit метод и передайте Commit значение.

Дополнительные сведения об обработке событий см. в разделе "Обработка и создание событий".

Применяется к

См. также раздел