DataGridView.CellClick Evento
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Ocorre quando qualquer parte de uma célula é clicada.
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 seguinte mostra um CellClick gestor de eventos numa implementação de jogo Tic-Tac-Toe que utiliza colunas de imagem num DataGridView controlo. A menos que o jogo tenha terminado ou que a célula já tenha sido clicada, o tratador de eventos define o valor da célula para um dos dois Bitmap objetos representados pelas variáveis x e o.
Este código faz parte de um exemplo maior mostrado em Como: Trabalhar com Colunas de Imagem no Controlo 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
Observações
Este evento ocorre quando qualquer parte de uma célula é clicada, incluindo bordas e preenchimento (padding). Também ocorre quando o utilizador pressiona e solta a tecla ESPAÇO enquanto uma célula de botão ou uma célula de seleção tem foco, e ocorre duas vezes para estes tipos de células se a célula for clicada enquanto pressiona a tecla ESPAÇO.
Para determinar quando o conteúdo das células é clicado, trate do CellContentClick evento.
Este evento não recebe informação sobre a posição do rato. Se o gestor de eventos precisar de informação sobre a posição do rato, use o CellMouseClick evento.
Para cliques num DataGridViewCheckBoxCell, este evento ocorre antes da caixa de seleção mudar de valor, por isso, se não quiser calcular o valor esperado com base no valor atual, normalmente irá tratar do DataGridView.CellValueChanged evento em vez disso. Como esse evento só ocorre quando o valor especificado pelo utilizador é confirmado, o que normalmente ocorre quando o foco sai da célula, também tens de tratar do DataGridView.CurrentCellDirtyStateChanged evento. Nesse handler, se a célula atual for uma célula de caixa de seleção, chama o DataGridView.CommitEdit método e passa o Commit valor.
Para mais informações sobre como gerir eventos, consulte Gestão e Levantamento de Eventos.