none
VB.Net 2005 WinForm BindingSource -> CurrentChanged事件问题? RRS feed

  • 问题

  • 使用bindingSource 的方法CurrentChanged 时碰到一点小问题,我的目的是根据当前DataGridView中的信息去控制一些东西,比如换图片、或者去控制哪个textBox可不可以改等等...

    下面是我测试的代码如下:
     Private Sub InventTableBindingSource_CurrentChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles InventTableBindingSource.CurrentChanged
            If _formStatus = formStatus.Loaded Then
                Dim _itemId As String = InventTableMyDataGridView.CurrentRow.Cells(0).Value
                Dim _position As Integer = InventTableBindingSource.Position
                MessageBox.Show("ItemId:" & _itemId & " - position:" & _position)
            End If
        End Sub

    运行后发现message 的_Itemid 是改变前的那个值,而_position是正确的。这里可能说不太明白,我说一下我的操作吧,首先焦点在DataGridView 中的第一行(假如ItemId = A),然后用鼠标或者键盘向下按钮移动到下一行(假如下一行ItemId = B),这时message出来的信息是"ItemId:A - position: 1"而不是"ItemId:B - position: 1"
    可否解释一下为什么产生这种现象呢?
    2009年2月27日 6:10

答案

全部回复