数据绑定Winforms文本框

简而言之,此数据绑定可以正常工作

tbTotalTaxDue.DataBindings.Add("Text", I, "TotalTaxDue");

即,当我输入一个无效值(如空字符串)然后从TB中跳出时,其中的值将恢复为先前的值.这是有道理的,因为输入的值不会进入小数类型的object属性.但是,不幸的是,这些数据绑定之一:

tbTotalTaxDue.DataBindings.Add("Text", I, "TotalTaxDue", true, DataSourceUpdateMode.OnPropertyChanged, 0, "C");
tbTotalTaxDue.DataBindings.Add("Text", I, "TotalTaxDue", true, DataSourceUpdateMode.OnValidation, 0, "C");

行为不同之处在于,当用户输入空字符串时,输入内容不会让用户在文本框中跳格.有什么方法可以使数据绑定显示为货币,而只是取消所有无效的编辑?

解决方法:

您有两种选择:

>子类化TextBox并覆盖OnValidating事件.如果Text为空,请在调用MyBase.OnValidating()之前退出以取消该事件.
>在TextBox上设置CausesValidation = False,并处理TextChanged事件.如果“文本”不为空,请手动进行验证.

我希望这有帮助.

上一篇:c#-滚动到WebBrowser控件的顶部


下一篇:为什么此代码粘贴到DataGridView这么慢?