0

我有一个“奇怪”的情况。我有一个带有绑定源和绑定导航器的表单。在本例中,我有 161 条记录(通过 EF6)要显示。控件的数据绑定工作得很好。但我发现绑定导航器的预期事件不会始终如一地发生。然后他们安定下来。

我有事件处理程序(除了默认事件处理程序,但是当我删除默认事件处理程序时也会发生同样的事情)

我将绑定源设置为导航器,并引发“位置更改”事件(如我所料)

单击任何“移动”按钮或编辑位置字段将导致:大约 4 次中的 3 次未引发事件(不是项目单击事件,不是绑定源位置更改)。然后事件引发,所有预期的导航发生,并重复。

但这似乎不是永久性的,因为一段时间后几乎所有记录的导航都开始正常工作。无论是否连接调试器,都会发生这种情况。

我注意到的另一件事是,当它失败时,任务栏中的图标会闪烁一次。

它不是我的任何处理程序代码中的东西,因为它永远不会进入我的代码。它可能是一个属性设置。这不是一个例外,因为即使使用“所有异常中断”,也不会报告任何异常。

4

1 回答 1

1

当您谈论“移动”按钮时,我认为您的意思是BindingNavigator. 这些按钮不是成熟的 Windows 控件,而是“轻量级”控件。因为这个,我过去看到过问题。

虽然我没有记忆中的所有细节,但这与它们不会像常规 Windows 控件那样将焦点从其他控件中窃取这一事实有关,这导致某些事件没有被引发。

我建议您创建自己的导航按钮,这是我最终在所有 Windows 窗体项目中所做的。然后那些常规按钮可以调用BindingSource诸如之类的方法MoveNext

于 2018-04-20T16:23:39.353 回答