هذا المثال سيقوم بتغيير أعدادات التاريخ في الجهاز إلى هجري عند تشغيل البرنامج
أنشــأ Class وأعطه التسميه التاليه (SetRegionalSettings.vb)
وأضف فيه هذا الكود
أضف في حدث اللود هذا الكود
وأعرض التاريخ في في TextBox بهذا الكود
أنشــأ Class وأعطه التسميه التاليه (SetRegionalSettings.vb)
وأضف فيه هذا الكود
كود :
Imports System.Runtime.InteropServices
Public Class SetRegionalSettings
Private Shared USASettings As New List(Of RegionalSettings)
Private Shared SASettings 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
Public Shared Sub setRegionalSetting(ByVal settingName As String)
With USASettings
.Add(New RegionalSettings("Locale", "00000409"))
.Add(New RegionalSettings("LocaleName", "en-US"))
.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("sGrouping", "3;0"))
.Add(New RegionalSettings("sLanguage", "ENU"))
.Add(New RegionalSettings("sList", ","))
.Add(New RegionalSettings("sLongDate", "dd/MMMM/yyyy"))
.Add(New RegionalSettings("sMonDecimalSep", "."))
.Add(New RegionalSettings("sMonGrouping", "3;0"))
.Add(New RegionalSettings("sMonThousandSep", ","))
.Add(New RegionalSettings("sNativeDigits", "0123456789"))
.Add(New RegionalSettings("sNegativeSign", "-"))
.Add(New RegionalSettings("sPositiveSign", ""))
.Add(New RegionalSettings("sShortDate", "dd/MM/yyyy"))
.Add(New RegionalSettings("sThousand", ","))
.Add(New RegionalSettings("sTime", ":"))
.Add(New RegionalSettings("sTimeFormat", "h:mm:ss tt"))
.Add(New RegionalSettings("sShortTime", "h:mm tt"))
.Add(New RegionalSettings("sYearMonth", "MMMM, yyyy"))
.Add(New RegionalSettings("iCalendarType", "1"))
.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("NumShape", "1"))
.Add(New RegionalSettings("iFirstDayOfWeek", "6"))
.Add(New RegionalSettings("iFirstWeekOfYear", "0"))
.Add(New RegionalSettings("iLZero", "1"))
.Add(New RegionalSettings("iMeasure", "1"))
.Add(New RegionalSettings("iNegCurr", "0"))
.Add(New RegionalSettings("iNegNumber", "1"))
.Add(New RegionalSettings("iPaperSize", "1"))
.Add(New RegionalSettings("iTime", "0"))
.Add(New RegionalSettings("iTimePrefix", "0"))
.Add(New RegionalSettings("iTLZero", "0"))
End With
With SASettings
.Add(New RegionalSettings("Locale", "00000401"))
.Add(New RegionalSettings("LocaleName", "ar-SA"))
.Add(New RegionalSettings("s1159", "ص"))
.Add(New RegionalSettings("s2359", "م"))
.Add(New RegionalSettings("sCountry", "Saudi Arabia"))
.Add(New RegionalSettings("sCurrency", "ر.س."))
.Add(New RegionalSettings("sDate", "/"))
.Add(New RegionalSettings("sDecimal", "."))
.Add(New RegionalSettings("sGrouping", "3;0"))
.Add(New RegionalSettings("sLanguage", "ARA"))
.Add(New RegionalSettings("sList", ";"))
.Add(New RegionalSettings("sLongDate", "dd/MMMM/yyyy"))
.Add(New RegionalSettings("sMonDecimalSep", "."))
.Add(New RegionalSettings("sMonGrouping", "3;0"))
.Add(New RegionalSettings("sMonThousandSep", ","))
.Add(New RegionalSettings("sNativeDigits", "٠١٢٣٤٥٦٧٨٩"))
.Add(New RegionalSettings("sNegativeSign", "-"))
.Add(New RegionalSettings("sPositiveSign", ""))
.Add(New RegionalSettings("sShortDate", "dd/MM/yyyy"))
.Add(New RegionalSettings("sThousand", ","))
.Add(New RegionalSettings("sTime", ":"))
.Add(New RegionalSettings("sTimeFormat", "hh:mm:ss tt"))
.Add(New RegionalSettings("sShortTime", "hh:mm tt"))
.Add(New RegionalSettings("sYearMonth", "MMMM, yyyy"))
.Add(New RegionalSettings("iCalendarType", "23"))
.Add(New RegionalSettings("iCountry", "966"))
.Add(New RegionalSettings("iCurrDigits", "2"))
.Add(New RegionalSettings("iCurrency", "2"))
.Add(New RegionalSettings("iDate", "1"))
.Add(New RegionalSettings("iDigits", "2"))
.Add(New RegionalSettings("NumShape", "0"))
.Add(New RegionalSettings("iFirstDayOfWeek", "5"))
.Add(New RegionalSettings("iFirstWeekOfYear", "0"))
.Add(New RegionalSettings("iLZero", "1"))
.Add(New RegionalSettings("iMeasure", "0"))
.Add(New RegionalSettings("iNegCurr", "3"))
.Add(New RegionalSettings("iNegNumber", "3"))
.Add(New RegionalSettings("iPaperSize", "9"))
.Add(New RegionalSettings("iTime", "0"))
.Add(New RegionalSettings("iTimePrefix", "0"))
.Add(New RegionalSettings("iTLZero", "1"))
End With
If settingName = "USA" Then
For Each reg As RegionalSettings In USASettings
Microsoft.Win32.Registry.SetValue("HKEY_CURRENT_USER\Control Panel\International", reg.entry, reg.value)
Next
ElseIf settingName = "SA" Then
For Each reg As RegionalSettings In SASettings
Microsoft.Win32.Registry.SetValue("HKEY_CURRENT_USER\Control Panel\International", reg.entry, reg.value)
Next
End If
NotifyInternationalChanges()
End Sub
Private Shared 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)> _
Private 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أضف في حدث اللود هذا الكود
كود :
Thread.CurrentThread.CurrentCulture = New CultureInfo("ar-SA")
SetRegionalSettings.setRegionalSetting("SA")وأعرض التاريخ في في TextBox بهذا الكود
كود :
((TextBox.Tex= Now().ToString("dd/MM/yyy"