Hot News!

Not Available

Click Like or share to support us!

Jul 1, 2012

របៀបប្តូរ Keyboard Layout ក្នុង VB.NET

ចំពោះ​អ្នក​សរសេរ​កម្ម​វិធី​ទាំងឡាយ ដែលប្រើ​ប្រាស់ខ្មែរ​យូនីកូដ នៅ​ពេល​ដែល​ចង់ប្តូរពី Keyboard Layout english ot khmer Unicode នោះ លោក​អ្នក​តំរូវអោយ​អ្នក​ប្រើ​ប្រាស់​កម្ម​វិធីចុច alt + Shift ដើម្បី​ប្តូរ​។ សកម្មភាព​បែប​នេះ វា​អាចបណ្តាលអោយ​មានកំហុស​កើត​ឡើង​ក្នុង​កម្ម​វិធី ឧទាហរណ៍ Text box ដែល​ត្រូវ​តំរូវ​អោយអ្នក​ប្រើប្រាស់បញ្ចូលទិន្ន​ជាលេខជាដើម ប្រសិន​បើ​ Keyboard Layout ស្ថិត​ក្នុង​ស្ថានភាព khmer (CA or KH) នោះ​វាបណ្តាល​អោយមានកំហុស​កើ​តឡើង។ ដើ​ម្បី​ដោះ​ស្រាយ​បញ្ហានេះ​លោក​អ្នក​ត្រូវ​ប្តូរ​ Keyboard Layout តាមរយៈការសរសេរ​កូដ នៅ​ត្រង់​ព្រឹត្តិការណ៍ got Focus ទៅ​លើ​ object មួយ ។ ខាង​ក្រោមនេះ គឺ​ជាគំរូកូដ​សំរាប់ផ្លាស់ប្តូរ Keyboard Layout ទៅ​ជាភាសាខ្មែរ រី ជាភាសា​អង់គ្លេស។
Module Module1
Public Declare Function GetKeyboardLayoutName Lib “user32″ _
Alias “GetKeyboardLayoutNameA” _
(ByVal pwszKLID As String) As Long
Public Declare Function LoadKeyboardLayout Lib “user32″ _
Alias “LoadKeyboardLayoutA” _
(ByVal pwszKLID As String, ByVal flags As Long) As Long
Const KLF_ACTIVATE = &H1
‘ some languages code
Public Const LANG_ENGLISH As String = “00000409″
Public Const LANG_FRENCH As String = “0000040C”
Public Const LANG_ARABIC As String = “00000401″
Public Const LANG_GREEK As String = “00000408″
Public Const Lang_kh As String = “a0000403″
Public Const LANG_ITALIAN As String = “00000400″
Public Const LANG_GERMAN As String = “00000407″
Public Function SwitchKeyboardLang(ByVal strLangID As String) As Boolean
‘Returns TRUE when the KeyboardLayout was set properly, FALSE otherwise
Dim strRet As String
On Error Resume Next
strRet = New String(“0″, 9)
GetKeyboardLayoutName(strRet)
If strRet = (strLangID & Chr(0)) Then
‘ you are try to switch to the already selected language
‘ so return without doing anything
SwitchKeyboardLang = True
Exit Function
Else
strRet = New String(“0″, 9)
strRet = LoadKeyboardLayout((strLangID & Chr(0)), KLF_ACTIVATE)
End If
GetKeyboardLayoutName(strRet) ‘ Test if switch successed
If strRet = (strLangID) Then
SwitchKeyboardLang = True
End If
End Function
End Module
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Text = SwitchKeyboardLang(LANG_ENGLISH)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Me.Text = SwitchKeyboardLang(Lang_kh)
End Sub
End Class
Source: http://laingmoam.wordpress.com/2010/01/11/%E1%9E%9A%E1%9E%94%E1%9F%80%E1%9E%94%E1%9E%94%E1%9F%92%E1%9E%8F%E1%9E%BC%E1%9E%9A-keyboard-layout-%E1%9E%80%E1%9F%92%E1%9E%93%E1%9E%BB%E1%9E%84-vb-net/

No comments:

Post a Comment