为什么禁用数据绑定datagridview会导致问题?

时间:2017-08-22 15:11:13

标签: vb.net datagridview

我最近发现Visual Basic存在问题,因为它处理DataGridView(DGV)的enabling/disabling,它被数据绑定到List个对象。

我正在开发的这个程序使用的DGV在程序执行时以编程方式填充信息。在程序的某些点上,这些DGV被启用和禁用。

我最近添加了一个数据绑定到对象列表的DGV。有了这个新的DGV,我试图通过基本上在与其他DGV相同的条件下启用和禁用其他DGV来模仿其他DGV的状态。只要新的DGV以任何方式与之交互,就会引起异常,并且特别难以调试。

在某些条件下,新的DGV 启用/禁用,并且这些异常未被提升。最终,这就是我发现启用/禁用DGV导致例外的原因。

我目前决定不打扰启用/禁用DGV,但我想知道是否有人知道为什么这会发生?

如果有人感兴趣,使用以下代码行禁用/启用DGV:

newDataGridView.enabled = false
'and
newDataGridView.enabled = true

更新:更多信息

有问题的DGV在标签控件上,最初隐藏有问题的DGV。

如果禁用DGV,则不会引发任何异常。但是,用户当然无法与DGV进行交互,这本身就是一个问题。

但是,如果将标签控件切换到DGV,则会出现问题,然后启用DGV然后单击(在任何位置)。如果在启用DGV时切换选项卡,则会立即发生异常。

除了表示源代码在代码之外的一行之外,异常将显示没有堆栈跟踪。

我在所有事件处理程序中都放置了断点,但没有一个被调用。此时,没有调用事件处理程序。在所有其他场景中,每个事件处理程序都能正常工

一旦我停止改变DGV的启用状态,就会停止发生此异常的所有实例。

0 个答案:

没有答案