将文本框绑定到VB.Net中的Double接受点

时间:2014-05-01 09:21:35

标签: vb.net binding textbox double

我有一个VB.Net表格中的文本框绑定到Double 问题是,在绑定验证时,它会改变像" 11.7"至" 117"因为Double转换不接受点。

如何在不将点更改为逗号的情况下解决此问题?

1 个答案:

答案 0 :(得分:2)

您需要设置正确的culture info,以便框架可以知道正确的小数分隔符。

Imports System.Threading
Imports System.Globalization

在启动表单的构造函数(Sub New)中添加以下代码。

Dim ci As New CultureInfo("it-IT")

ci.NumberFormat.NumberDecimalSeparator = "."

Thread.CurrentThread.CurrentCulture = ci
Thread.CurrentThread.CurrentUICulture = ci

以下是您可以找到您的文化代码列表:

http://msdn.microsoft.com/en-us/library/ee825488%28v=cs.20%29.aspx

修改

另一种方法是订阅绑定的parse事件。

Dim b As New Binding("Text", TheDataSource, "TheDoubleField")

AddHandler b.Parse, Sub(s As Object, e As ConvertEventArgs) e.Value = CStr(e.Value).Replace(".", ",")

Me.TextBox1.DataBindings.Add(b)