我有一个VB.Net表格中的文本框绑定到Double 问题是,在绑定验证时,它会改变像" 11.7"至" 117"因为Double转换不接受点。
如何在不将点更改为逗号的情况下解决此问题?
答案 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)