数据绑定Winforms文本框

时间:2011-03-29 18:44:19

标签: c# .net winforms data-binding

简而言之,这种数据绑定正常工作

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

即,当我输入一个无效值 - 如空字符串 - 然后从TB中跳出选项卡时,其中的值只会恢复到之前的值。这是有道理的,因为输入的值不会进入decimal类型的object属性。不幸的是,这些数据绑定中的任何一个:

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

表现不同的是,当用户输入空字符串时,输入不会让用户选项卡退出文本框。有没有办法让数据绑定显示为货币,但只是取消任何无效的编辑?

1 个答案:

答案 0 :(得分:3)

您有几个选择:

  1. 子类TextBox并覆盖OnValidating事件。如果Text为空,请在致电MyBase.OnValidating()之前退出以取消该活动。

  2. CausesValidation = False上设置TextBox,并处理TextChanged事件。如果Text不为空,请手动验证。

  3. 我希望这会有所帮助。