求救 DataGrigView与DataSet数据联动问题
一个窗体Form1,一个DataGridView,一个Button1,一个ToolStrip1按键代码如下:
Private DataSet1 As New DataSet
Private DataTable1 As New DataTable("DataTable1")
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim nc As DataColumn
nc = New DataColumn
nc.ColumnName = "列1"
nc.DataType = System.Type.GetType("System.String")
DataTable1.Columns.Add(nc)
nc = New DataColumn
nc.ColumnName = "列2"
nc.DataType = System.Type.GetType("System.Boolean")
DataTable1.Columns.Add(nc)
Dim dr As DataRow
dr = DataTable1.NewRow
dr(0) = "1234"
dr(1) = True
DataTable1.Rows.Add(dr)
dr = DataTable1.NewRow
dr(0) = "1"
dr(1) = True
DataTable1.Rows.Add(dr)
DataSet1.Tables.Add(DataTable1)
DataSet1.AcceptChanges()
DataGridView1.DataSource = DataSet1.Tables("DataTable1").DefaultView
DataGridView1.AllowUserToAddRows = False
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
If DataSet1.HasChanges(DataRowState.Modified) Then
Dim Dataset2 As DataSet
Dataset2 = DataSet1.GetChanges(DataRowState.Modified)
For Each dr As DataRow In Dataset2.Tables(0).Rows
MsgBox("列1:" & dr(0).ToString & "-- 列2:" & dr(1).ToString)
Next
DataSet1.AcceptChanges()
End If
End Sub
Private Sub ToolStripButton1_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripButton1.Click
DataGridView1.EndEdit()
If DataSet1.HasChanges(DataRowState.Modified) Then
Dim Dataset2 As DataSet
Dataset2 = DataSet1.GetChanges(DataRowState.Modified)
For Each dr As DataRow In Dataset2.Tables(0).Rows
MsgBox("列1:" & dr(0).ToString & "-- 列2:" & dr(1).ToString)
Next
DataSet1.AcceptChanges()
End If
End Sub
在ToolStripButton1_Click总是最后一行的修改变化没法捕捉,一定要离开当前行才可以捕捉到!但Button1_Click则不需要离开当前行,如何在ToolStripButton1_Click中实现Button1_Click的功能??????