本帖最后由 csz_1987 于 2014-05-19 21:02:18 编辑

解决方案 »

  1.   

    你可以用RowsRemved 事件试下看看...
      

  2.   

    其实你不应该把控件看做数据的“容器”。数据的容器只有内存,而不是屏幕。
    控件只是用来展示和提供用户输入的界面。
    datagridview还是应该有一个数据源。比如DataTable. 当然删除DGV里的一行,DataTable相应的行会自动作上删除标记。
    这一切.net都已经帮你考虑得非常周到了。
      

  3.   

    有一个事例, 一个同事纠结于DGV里的行之间怎么调整上下顺序,写了一堆操作DGV里的格子的代码,还总是有BUG.
    我跟他说,其实你何必这么麻烦,DGV是绑定了一个DataTable的,你只要把DataTable里的两行交换顺序就行了,DGV自然就会自动更新了。而这个调整DataTable的代码只有三行。
      

  4.   

    考虑一下dt.GetChanges(DataRowState.Deleted);
      

  5.   


    你的建议是 DataGridView.DataSource = DataTable。 绑定数据源,所有的操作对DataTable进行,对DataTable的操作DataGridView会实时展示DataSource里的数据?
      

  6.   


    你的建议是 DataGridView.DataSource = DataTable。 绑定数据源,所有的操作对DataTable进行,对DataTable的操作DataGridView会实时展示DataSource里的数据?
    是这个意思,而且用户在界面上对DGV中的修改操作,只要通过了验证,会自动反应在DataTable中。因为这是“双向绑定”。