取得DataGridView欄位變更前與變更後的值
在藍色小舖中,有人問 如何取得DataGirdView 欄位變更前與變更後的值,其實可以簡單的透過 DataGirdView 的這兩個事件DataGridView.CellValueChanged 與 DataGridView.CellBeginEdit 達成
CellBeginEdit 發生於選定的儲存格開始編輯模式時,先將欄位內的資料儲存
CellValueChanged 發生於儲存格的值變更時,取得改變後的值
http://msdn.microsoft.com/zh-tw/library/system.windows.forms.datagridview.cellbeginedit(VS.80).aspx
http://msdn.microsoft.com/zh-tw/library/system.windows.forms.datagridview.cellvaluechanged(VS.80).aspx
程式碼
Private Sub DataGridView1_CellValueChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellValueChanged
' 取得變更後的值
If DataGridView1.Rows.Count > 0 Then
Dim dr As String
dr = DataGridView1(e.ColumnIndex, e.RowIndex).Value.ToString()
Label2.Text = "更新欄位後的值為 : " & dr
End If
End Sub
Private Sub DataGridView1_CellBeginEdit(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellCancelEventArgs) Handles DataGridView1.CellBeginEdit
' 取得開始編輯時的值
If DataGridView1.Rows.Count > 0 Then
Dim dr As String
dr = DataGridView1(e.ColumnIndex, e.RowIndex).Value.ToString()
Label1.Text = "編輯欄位前的值為 : " & dr
End If
End Sub
' 取得變更後的值
If DataGridView1.Rows.Count > 0 Then
Dim dr As String
dr = DataGridView1(e.ColumnIndex, e.RowIndex).Value.ToString()
Label2.Text = "更新欄位後的值為 : " & dr
End If
End Sub
Private Sub DataGridView1_CellBeginEdit(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellCancelEventArgs) Handles DataGridView1.CellBeginEdit
' 取得開始編輯時的值
If DataGridView1.Rows.Count > 0 Then
Dim dr As String
dr = DataGridView1(e.ColumnIndex, e.RowIndex).Value.ToString()
Label1.Text = "編輯欄位前的值為 : " & dr
End If
End Sub
執行結果
http://www.blueshop.com.tw/board/show.asp?subcde=BRD20090320105558BG8&fumcde=