查阅N多资料,终于找到一变通方法来实现全球化区域性的信息的应用
案例:由于客户在欧洲,其数值的小数点字符与分组字符与中国的正好相反。(之前的方案BUG也是由小数点修改后引起的崩溃)
如表示十万零八百九十七点二五六
zh-CN: 100,097.256
我的客户需要显示为:100.097,256
正好相反。
根据以上情况,整体思路,还是调用操作系统的不同国家区域语言设置。
System.Globalization.CultureInfo.CreateSpecificCulture("en-US") '调用英语-美国
System.Globalization.CultureInfo.CreateSpecificCulture("it-IT") '调用意大利-意大利
国家代码可以参考:http://msdn.microsoft.com/zh-cn/library/system.globalization.cultureinfo(VS.80).aspx
设置当前程序的区域语言为
System.Threading.Thread.CurrentThread.CurrentCulture
这里重点警告一下,用到区域语言的哪个部分,就调用哪个部分。
我之前的实验就犯了这个错误,导致事件代码无法编辑。
在这个案例中,由于操作的人还是华人,所以,只用到它的数值显示一块。
具体的代码如下。
System.Threading.Thread.CurrentThread.CurrentCulture.NumberFormat = _
System.Globalization.CultureInfo.CreateSpecificCulture("it-IT").NumberFormat
白话文解释:设置当前程序的区域语言,数值部分 =系统区域语言中,意大利语,数值部分。
好了,到这里为止,其实就是前天犯错的步骤。
那么接下来就要在项目保存的时候,
将这些设置还原。
如果不还原,导致的后果,就是版本无法打开。
我在保存项目事件中,设置如下代码
System.Threading.Thread.CurrentThread.CurrentCulture.NumberFormat = _
System.Globalization.CultureInfo.CreateSpecificCulture("en-US").NumberFormat '切换会英文模式
Syscmd.Project.Save()
附录代码:
以下内容为程序代码:
1 项目事件
2
3 BeforeOpenProject
4
5 System.Threading.Thread.CurrentThread.CurrentCulture.NumberFormat = _
6 System.Globalization.CultureInfo.CreateSpecificCulture("it-IT").NumberFormat
7
8 MainTableChanged
9
10 System.Threading.Thread.CurrentThread.CurrentCulture.NumberFormat = _
11 System.Globalization.CultureInfo.CreateSpecificCulture("it-IT").NumberFormat
12
13 CurrentTableChanged
14
15 System.Threading.Thread.CurrentThread.CurrentCulture.NumberFormat = _
16 System.Globalization.CultureInfo.CreateSpecificCulture("it-IT").NumberFormat
17
18 AfterSaveProject
19
20 System.Threading.Thread.CurrentThread.CurrentCulture.NumberFormat = _
21 System.Globalization.CultureInfo.CreateSpecificCulture("en-US").NumberFormat
22 Syscmd.Project.Save()
23
24 计划管理
25
26 表事件
27
28 窗口表事件
29
30 窗口与控件事件
31
32 窗口1_AfterLoad
33
34 System.Threading.Thread.CurrentThread.CurrentCulture.NumberFormat = _
35 System.Globalization.CultureInfo.CreateSpecificCulture("it-IT").NumberFormat
36
37 窗口1_BeforeClose
38
39 System.Threading.Thread.CurrentThread.CurrentCulture.NumberFormat = _
40 System.Globalization.CultureInfo.CreateSpecificCulture("en-US").NumberFormat
41
42 窗口1_Enter
43
44 System.Threading.Thread.CurrentThread.CurrentCulture.NumberFormat = _
45 System.Globalization.CultureInfo.CreateSpecificCulture("en-US").NumberFormat
46
47 窗口1_Leave
48
49 System.Threading.Thread.CurrentThread.CurrentCulture.NumberFormat = _
50 System.Globalization.CultureInfo.CreateSpecificCulture("it-IT").NumberFormat
51
52 自定义函数
53
54 全局代码
55
56 菜单事件
57
58
59