Partilhar via


DataGridView.CellClick Evento

Definição

Ocorre quando um usuário clica em qualquer parte de uma célula.

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 

Tipo de evento

Exemplos

O exemplo de código a seguir mostra um CellClick manipulador de eventos em uma implementação de jogo Tic-Tac-Toe que usa colunas de imagem em um DataGridView controle . A menos que o jogo tenha acabado ou a célula já tenha sido clicada, o manipulador de eventos define o valor da célula como um dos dois Bitmap objetos representados pelas variáveis x e o.

Esse código faz parte de um exemplo maior mostrado em Como trabalhar com colunas de imagem no controle 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

Comentários

Esse evento ocorre quando qualquer parte de uma célula é clicada, incluindo bordas e preenchimento. Ele também ocorre quando o usuário pressiona e libera a tecla SPACE enquanto uma célula de botão ou marcar célula da caixa tem foco e ocorrerá duas vezes para esses tipos de célula se a célula for clicada enquanto pressiona a tecla SPACE.

Para determinar quando o conteúdo da célula é clicado, manipule o CellContentClick evento.

Esse evento não recebe informações sobre a posição do mouse. Se o manipulador de eventos precisar de informações sobre a posição do mouse, use o CellMouseClick evento .

Para cliques em um DataGridViewCheckBoxCell, esse evento ocorre antes que a caixa de marcar altere o valor, portanto, se você não quiser calcular o valor esperado com base no valor atual, normalmente manipulará o DataGridView.CellValueChanged evento. Como esse evento ocorre somente quando o valor especificado pelo usuário é confirmado, o que normalmente ocorre quando o foco sai da célula, você também deve manipular o DataGridView.CurrentCellDirtyStateChanged evento. Nesse manipulador, se a célula atual for uma célula de caixa marcar, chame o DataGridView.CommitEdit método e passe o Commit valor.

Para obter mais informações sobre como lidar com eventos, consulte Manipulando e gerando eventos.

Aplica-se a

Confira também