2009-02-02 146 views
4

我一直在使用C#将winform中的文本框绑定到数据集。只要数据没有通过数据库验证,除非它静默地强制焦点留在文本框中。我如何捕获验证错误并告诉用户有关它(并释放焦点)? BindingSource事件OnDataError未被触发。绑定文本框

+0

如何检查数据是否无效? – BFree 2009-02-02 22:27:19

+0

我不是,Visual Studio或C#/ .NET已经为我完成了。我想改变它。 – Malfist 2009-02-02 22:28:17

回答

2

我曾经有过类似的问题。当用户修改文本框中的文本然后将其删除,以便文本属性为空字符串时,焦点仍保留在绑定到某个数字数据库字段的文本框中。我用类似的方法解决它:

textbox.DataBindings["Text"].NullValue = ""; 

它解决了空输入问题。我不知道在你的情况下它是否有用,但我也会对更一般的解决方案感兴趣。

这里也因此,一些相关的问题:

Data-bound TextBox: can't exit

1

如果你不完全明白它在做什么,永远不要仅仅依靠“Visual Studio为我做的”。我强烈建议你花点时间,弄清楚如何去做自己想做的事情(意思是没有设计器生成的代码)。为了让你开始,TextBox上有一些事件可以帮助你。从这里开始:

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.validated.aspx

具体的验证和确认事件应该是你在找什么。

+0

它迫使我依赖它,因为我不知道如何覆盖它的控件,这就是我所要求的。我该如何覆盖它正在做的事情> – Malfist 2009-02-03 17:46:14

0

这不只是形式的Autovalidate财产?