关键是如何判断用户改了哪些数据, 不会是调每个控件的OnMouseUp OnKeyUP事件吧?这样太复杂了.

解决方案 »

  1.   

    写WinForm的Closing事件,判断: if (ds.HasChanges) messagebox.show("有数据需要更新!");
      

  2.   

    在窗口的Closing事件中加入对你的数据表检测代码,示例如下:
       Dim tb As DataTable  '你的数据表
        Private Sub FrmSelect_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
            If Not tb.GetChanges Is Nothing AndAlso tb.GetChanges.Rows.Count > 0 Then
                If MessageBox.Show("要保存数据吗?") = DialogResult.Yes Then
                    '执行你的保存代码
                End If
            End If
        End Sub
      

  3.   

    问题是你的Datatable怎么自动更新呀.假设是一个TextBox控件,值为 dataTable.Row[0]["name"] 如何绑定他们,让TextBox中的值改变后, dataTable会自动改变?
      

  4.   

    bool一个变量,如果表更改了,在datagrid事件里,把它为true,close的时候判断是否为true,是否更新
      

  5.   

    问题是表单不可能全是DataGrid呀,就是一个简单的Form里面有十几个TextBox.
      

  6.   

    milp()说的没错。那样该怎么办?