共用方式為


How to: Perform a Custom Action Based on Changes in a Cell of a Windows Forms DataGridView Control

The DataGridView control has a number of events you can use to detect changes in the state of DataGridView cells. Two of the most commonly used are the CellValueChanged and CellStateChanged events.

To detect changes in the values of DataGridView cells

  • Write a handler for the CellValueChanged event.

    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");
    }
    

To detect changes in the states of DataGridView cells

  • Write a handler for the CellStateChanged event.

    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");
    }
    

Compiling the Code

This example requires:

  • A DataGridView control named dataGridView1. For C#, the event handlers must be connected to the corresponding events.

  • References to the System and System.Windows.Forms assemblies.

See Also

Tasks

Walkthrough: Validating Data in the Windows Forms DataGridView Control

Reference

DataGridView
System.Windows.Forms.DataGridView.CellValueChanged
System.Windows.Forms.DataGridView.CellStateChanged

Other Resources

Programming with Cells, Rows, and Columns in the Windows Forms DataGridView Control