DataGridView.DataSource停止触发DataSourceChanged事件

时间:2019-06-13 08:23:29

标签: vb.net winforms

在我的代码中,我曾经在另一个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事件。

在新版本中运行的具有相同功能的同一行不会触发该事件。

打破这个可能发生了什么?

0 个答案:

没有答案