هناك نوعين من الفورمات يمكن ان تجعلهم ياخذون التنسيق الانجليزي الخاصة بالولايات المتحدة و المملكه المتحدة
كود :
Imports System.Runtime.InteropServices
Public Class Form1
Private USASettings As New List(Of RegionalSettings)
Private UKSettings As New List(Of RegionalSettings)
Private Class RegionalSettings
Public entry As String
Public value As String
Public Sub New(ByVal key As String, ByVal value As String)
Me.entry = key : Me.value = value
End Sub
End Class
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
With USASettings
.Add(New RegionalSettings("iCountry", "1"))
.Add(New RegionalSettings("iCurrDigits", "2"))
.Add(New RegionalSettings("iCurrency", "0"))
.Add(New RegionalSettings("iDate", "1"))
.Add(New RegionalSettings("iDigits", "2"))
.Add(New RegionalSettings("iLZero", "1"))
.Add(New RegionalSettings("iMeasure", "1"))
.Add(New RegionalSettings("iNegCurr", "0"))
.Add(New RegionalSettings("iTime", "0"))
.Add(New RegionalSettings("iTLZero", "0"))
.Add(New RegionalSettings("Locale", "00000409"))
.Add(New RegionalSettings("s1159", "AM"))
.Add(New RegionalSettings("s2359", "PM"))
.Add(New RegionalSettings("sCountry", "United States"))
.Add(New RegionalSettings("sCurrency", "$"))
.Add(New RegionalSettings("sDate", "/"))
.Add(New RegionalSettings("sDecimal", "."))
.Add(New RegionalSettings("sLanguage", "ENU"))
.Add(New RegionalSettings("sList", ","))
.Add(New RegionalSettings("sLongDate", "dddd, MMMM dd, yyyy"))
.Add(New RegionalSettings("sShortDate", "M/d/yyyy"))
.Add(New RegionalSettings("sThousand", ","))
.Add(New RegionalSettings("sTime", ":"))
.Add(New RegionalSettings("sTimeFormat", "h:mms"))
.Add(New RegionalSettings("iTimePrefix", "0"))
.Add(New RegionalSettings("sMonDecimalSep", "."))
.Add(New RegionalSettings("sMonThousandSep", ","))
.Add(New RegionalSettings("iNegNumber", "1"))
.Add(New RegionalSettings("sNativeDigits", "0123456789"))
.Add(New RegionalSettings("NumShape", "1"))
.Add(New RegionalSettings("iCalendarType", "1"))
.Add(New RegionalSettings("iFirstDayOfWeek", "6"))
.Add(New RegionalSettings("iFirstWeekOfYear", "0"))
.Add(New RegionalSettings("sGrouping", "3;0"))
.Add(New RegionalSettings("sMonGrouping", "3;0"))
.Add(New RegionalSettings("sPositiveSign", ""))
.Add(New RegionalSettings("sNegativeSign", "-"))
End With
With UKSettings
.Add(New RegionalSettings("iCountry", "44"))
.Add(New RegionalSettings("iCurrDigits", "2"))
.Add(New RegionalSettings("iCurrency", "0"))
.Add(New RegionalSettings("iDate", "1"))
.Add(New RegionalSettings("iDigits", "2"))
.Add(New RegionalSettings("iLZero", "1"))
.Add(New RegionalSettings("iMeasure", "0"))
.Add(New RegionalSettings("iNegCurr", "1"))
.Add(New RegionalSettings("iTime", "1"))
.Add(New RegionalSettings("iTLZero", "1"))
.Add(New RegionalSettings("Locale", "00000809"))
.Add(New RegionalSettings("s1159", "AM"))
.Add(New RegionalSettings("s2359", "PM"))
.Add(New RegionalSettings("sCountry", "United Kingdom"))
.Add(New RegionalSettings("sCurrency", "£"))
.Add(New RegionalSettings("sDate", "/"))
.Add(New RegionalSettings("sDecimal", "."))
.Add(New RegionalSettings("sLanguage", "ENG"))
.Add(New RegionalSettings("sList", ","))
.Add(New RegionalSettings("sLongDate", "dd MMMM yyyy"))
.Add(New RegionalSettings("sShortDate", "dd/MM/yyyy"))
.Add(New RegionalSettings("sThousand", ","))
.Add(New RegionalSettings("sTime", ":"))
.Add(New RegionalSettings("sTimeFormat", "HH:mms"))
.Add(New RegionalSettings("iTimePrefix", "0"))
.Add(New RegionalSettings("sMonDecimalSep", "."))
.Add(New RegionalSettings("sMonThousandSep", ","))
.Add(New RegionalSettings("iNegNumber", "1"))
.Add(New RegionalSettings("sNativeDigits", "0123456789"))
.Add(New RegionalSettings("NumShape", "1"))
.Add(New RegionalSettings("iCalendarType", "1"))
.Add(New RegionalSettings("iFirstDayOfWeek", "0"))
.Add(New RegionalSettings("iFirstWeekOfYear", "0"))
.Add(New RegionalSettings("sGrouping", "3;0"))
.Add(New RegionalSettings("sMonGrouping", "3;0"))
.Add(New RegionalSettings("sPositiveSign", ""))
.Add(New RegionalSettings("sNegativeSign", "-"))
End With
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
For Each reg As RegionalSettings In UKSettings
Microsoft.Win32.Registry.SetValue("HKEY_CURRENT_USER\Control Panel\International", reg.entry, reg.value)
Next
NotifyInternationalChanges()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
For Each reg As RegionalSettings In USASettings
Microsoft.Win32.Registry.SetValue("HKEY_CURRENT_USER\Control Panel\International", reg.entry, reg.value)
Next
NotifyInternationalChanges()
End Sub
Private Sub NotifyInternationalChanges()
Dim HWND_BROADCAST As New IntPtr(&HFFFF) 'broadcast to entire system
Dim Lparam As IntPtr = System.Runtime.InteropServices.Marshal.StringToBSTR("intl")
SendNotifyMessage(HWND_BROADCAST, &H1A, UIntPtr.Zero, Lparam)
System.Runtime.InteropServices.Marshal.FreeBSTR(Lparam)
End Sub
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Public Shared Function SendNotifyMessage(ByVal hWnd As IntPtr, _
ByVal msg As UInt32, _
ByVal wParam As UIntPtr, _
ByVal lParam As IntPtr) As Boolean
End Function
End Class