在我的代码中,我曾经在另一个DataGridView的RowEnter事件中执行以下操作:
dgv.DataSource = SomeFunctionReturningDataTable(ID)
函数如下:
Function SomeFunctionReturningDataTable(ByVal ID As String) As DataTable
If ds.Tables.Contains("Detail") Then
ds.Tables("Detail").Clear()
End If
'SQL query with DataAdapter using ID
Return ds.Tables("Detail")
End Function
第二个datagridview(dgv
)在另一个datagridview中显示有关当前选定记录的更详细的信息。
该函数正确返回具有正确数据的数据表。
然后在DataSourceChanged
事件中为新数据在datagridview中进行一些格式化:
Private Sub dgv_DataSourceChanged(sender As Object, e As EventArgs) Handles dgv.DataSourceChanged
FormatDGV(dgv)
End Sub
但是,自特定版本以来,DataSourceChanged事件已停止触发。在以前的版本中,此方法有效。
但是,我已经在很多发行版中使用了它,直到现在它一直都可以使用,并且这两个版本中的代码完全相同。
在工作版本中,我已经验证了dgv.DataSource = SomeFunctionReturningDataTable(ID)
这行完成之后,肯定会触发DataSourceChanged事件。
在新版本中运行的具有相同功能的同一行不会触发该事件。
打破这个可能发生了什么?