这样试下呢:
private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
        {
            this.dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
        }

解决方案 »

  1.   

    还是不行  同样是UnChange!!
      

  2.   


    DataRow row = table.Rows[rowIndex];
                System.Console.WriteLine("in dataTable " + row[1]);
                System.Console.WriteLine("row.RowState = " + row.RowState);
                System.Console.WriteLine("row.version = " + row[1,DataRowVersion.Proposed]);我在电脑上运行了以下,打印出来是Unchanged,但是被修改的那个字段的值,保存在DataRowVersion.Proposed中。
    而此时DataRowVersion.Default等于DataRowVersion.Proposed。
    DataRowVersion.Original和DataRowVersion.Current中保存的都是原值。MSDN对DataRowVersion的解释:在DataRowState 等于Detached的时候,DataRowVersion.Default等于DataRowVersion.Proposed。
    但此时打印出的row.RowState = Unchanged。public enum DataRowVersionThe default version of DataRowState. For a DataRowState value of Added, Modified or Deleted, the default version is Current. For a DataRowState value of Detached, the version is Proposed. 
      

  3.   

    加上ispostback判断一下