如何在.net中使用DataBindingNavigator在WinForms中导航前验证表单数据输入

本文关键字:验证 表单 数据 输入 导航 DataBindingNavigator net WinForms | 更新日期: 2023-09-27 18:07:00

我刚开始用c#开发。net。虽然我对语言本身越来越熟悉了,但我需要一些帮助来了解框架的特性。

我正在构建一个windows窗体应用程序,以取代一个简单的访问数据库。我有数据源连接,窗体上的控件,把基本的逻辑到位,没有问题。甚至发现我需要使用tableAdapterManager.UpdateAll(…)或类似的方法手动将数据保存回数据库。

我目前的问题,我一直无法找到一个解决方案后,谷歌搜索,是如何验证我的数据输入之前,允许用户离开当前记录。

场景:

用户单击'Add'以获取新记录,填写一些数据,但没有填写一个必填字段。然后,用户导航到另一个记录,而无需点击"保存"按钮。应用程序抛出异常,记录丢失。

我可以拦截什么事件,或者我需要重写什么函数来对表单的数据进行导航前验证,如果数据在某种程度上无效,则取消导航?

如何在.net中使用DataBindingNavigator在WinForms中导航前验证表单数据输入

任何Windows窗体都可以处理FormClosing事件,您可以在其中放入验证代码。FormClosingEvent有一个FormClosingEventArgs对象,所以如果你的验证失败了,你可以把它的Cancel属性设置为True来防止导航离开。

编辑

对于使用BindingNavigator对象的表单,您应该能够处理它的"valididating"事件来实现类似的效果。在你的BindingNavigator的valididating eventandler中,只要为它的CancelEventArgs对象设置Cancel参数,以防你的任何验证失败。

如果使用datagridview对象来表示值,则需要处理rowvalididating Event