Partilhar via


Como: Executar uma ação personalizada com base em alterações em uma célula de um controle DataGridView do Windows Forms

The DataGridView controle tem um número de eventos, de que você pode usar para detectar alterações no estado DataGridView células. Duas das mais comumente usadas são o CellValueChanged e CellStateChanged eventos.

Para detectar alterações nos valores de células de DataGridView

  • Escrever um manipulador para o CellValueChanged evento.

    Private Sub dataGridView1_CellValueChanged(ByVal sender As Object, _
        ByVal e As DataGridViewCellEventArgs) _
        Handles dataGridView1.CellValueChanged
    
        Dim msg As String = String.Format( _
            "Cell at row {0}, column {1} value changed", _
            e.RowIndex, e.ColumnIndex)
        MessageBox.Show(msg, "Cell Value Changed")
    
    End Sub
    
    private void dataGridView1_CellValueChanged(object sender,
        DataGridViewCellEventArgs e)
    {
        string msg = String.Format(
            "Cell at row {0}, column {1} value changed",
            e.RowIndex, e.ColumnIndex);
        MessageBox.Show(msg, "Cell Value Changed");
    }
    

Para detectar alterações em estados de células de DataGridView

  • Escrever um manipulador para o CellStateChanged evento.

    Private Sub dataGridView1_CellStateChanged(ByVal sender As Object, _
        ByVal e As DataGridViewCellStateChangedEventArgs) _
        Handles dataGridView1.CellStateChanged
    
        Dim state As DataGridViewElementStates = e.StateChanged
        Dim msg As String = String.Format( _
            "Row {0}, Column {1}, {2}", _
            e.Cell.RowIndex, e.Cell.ColumnIndex, e.StateChanged)
        MessageBox.Show(msg, "Cell State Changed")
    
    End Sub
    
    private void dataGridView1_CellStateChanged(object sender,
        DataGridViewCellStateChangedEventArgs e)
    {
        DataGridViewElementStates state = e.StateChanged;
        string msg = String.Format("Row {0}, Column {1}, {2}",
            e.Cell.RowIndex, e.Cell.ColumnIndex, e.StateChanged);
        MessageBox.Show(msg, "Cell State Changed");
    }
    

Compilando o código

Este exemplo requer:

  • Um controle DataGridView chamado dataGridView1.Translation from VPE for Csharp, os manipuladores de eventos devem ser conectados à eventos correspondentes.

  • Referências à System e System.Windows.Forms assemblies.

Consulte também

Tarefas

Demonstra Passo a passo: Validando dados no controle do Windows Forms DataGridView

Referência

DataGridView

DataGridView.CellValueChanged

DataGridView.CellStateChanged

Outros recursos

Programação com células, linhas e colunas em Windows Forms DataGridView controle