กำหนดคุณสมบัติ textbox
กระทู้เก่าบอร์ด อ.Yeadram

 784   2
URL.หัวข้อ / URL
กำหนดคุณสมบัติ textbox

ต้องการกำหนดให้ text box มีสถานะ caps Lock = on และมีเลเบลบอกว่า caps Lock = on และ แป้นพิมพ์สถานะ ภาษา Eng ต้องใช้คำสั่งอย่างไรครับ

2 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R24031
Text1 = TextBox
Label1 = ข้อความที่แสดงกว่า Cap lock On

1. ตั้งค่า Property ของ Text1 ตรง Keyboard Language ให้เป็น English

2. ใส่ code vba ตามนี้

Option Compare Database

Private Declare Sub GetKeyboardState Lib "User32" (lpKeyState As Any)
Const VK_CAPITAL = &H14

Private Declare Function SetKeyboardState Lib "User32" (kbArray As Byte) As Long
'Number Lock is &H90
'Caps Lock is &H14

Private Sub ToggleKeys()
Dim KeyState(256) As Byte
    KeyState(&H14) = 1 'for on
    'KeyState(&H14) = 0 'for off
    SetKeyboardState KeyState(0)
End Sub

Private Function CapsOn()
ReDim KeyboardBuffer(256) As Byte
    'Array to check capslock
    GetKeyboardState KeyboardBuffer(0)
    If KeyboardBuffer(VK_CAPITAL) And 1 Then
    'CapsLock on ...
       CapsOn = True
    Else
        CapsOn = False
    End If
End Function

Private Sub Text1_GotFocus()
    ToggleKeys
    If CapsOn Then
        Me.Label1.Visible = True
    Else
        Me.Label1.Visible = False
    End If
End Sub

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
On Error Resume Next
    
Select Case KeyCode
Case vbKeyCapital
    If CapsOn Then
        Me.Label1.Visible = True
    Else
        Me.Label1.Visible = False
    End If
End Select

End Sub
2 @R24032
ปล. การ set cap lock จาก Win API จะไม่สัมพันธ์กับไฟสถานะของ cap lock บนคีย์บอร์ด เพราะฉะนั้นอาจจะทำให้ผู้ใช้สับสนได้
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3138s