View Full Version : سوال: Change KeyBoard Language
Alisalari
یک شنبه 24 شهریور 1387, 17:26 عصر
سلام
چندتا تاپيك درباره ي اين سوال پيدا كردم اما نشد ! :متفکر:
ميخوام TextBox وقتي Focus ميگيره ، صفحه كليد خودكار فارسي بشه .
ضمنا" ببخشيد كه نوع پيام "مقاله" شد ، دير متوجه شدم . ممنون
اوبالیت به بو
یک شنبه 24 شهریور 1387, 18:19 عصر
در خاصيت GotFocuse كنترلتون كد پست زير رو بنويسيد:
http://barnamenevis.org/forum/showpost.php?p=79064&postcount=4
ساده تر:
Option Explicit
Private Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long
Private Sub Text1_GotFocus()
Dim xx As Long
xx = LoadKeyboardLayout("00000429", 1)
End Sub
Rambod
یک شنبه 24 شهریور 1387, 18:33 عصر
البته در دات نت نيازي به فراخواني مستقيم APIها نيست. ميتونيد از كد زير استفاده كنيد.
Public Class Form1
Private PersianInput As InputLanguage
Private EnglishInput As InputLanguage
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim count As Integer
count = InputLanguage.InstalledInputLanguages.Count
For i As Integer = 1 To (count - 1)
If InputLanguage.InstalledInputLanguages(i).LayoutNam e.Contains("Persian") = True Then
'Found an Persian Keyboard
PersianInput = InputLanguage.InstalledInputLanguages(i)
Else
If InputLanguage.InstalledInputLanguages(i).LayoutNam e.Contains("English") = True Then
'Found an English Keyboard
EnglishInput = InputLanguage.InstalledInputLanguages(i)
End If
End If
Next i
End Sub
Private Sub TextBox1_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.Enter
InputLanguage.CurrentInputLanguage = PersianInput
End Sub
Private Sub TextBox2_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.Enter
InputLanguage.CurrentInputLanguage = EnglishInput
End Sub
End Class
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.