Page 1 of 1

กำหนด SetFocus เข้าตัวเองไม่ได้

Posted: Wed Nov 07, 2018 3:27 pm
by apforever
สวัสดีครับ
อยากทราบว่าทำไมเวลากำหนด setfocus ที่ตัวเองถึงไม่โฟกัสครับ กลับไปโฟกัสอีกอัน อย่างเช่น ตั้ง setfocus ที่ textbox1 แต่กลับโฟกัสที่ Textbox2 แทน ต้องแก้ไขอย่างไรครับ ขอบคุณครับ

Code: Select all

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
    If Not IsNumeric(Me.TextBox1.Text) Then
    MsgBox "please input number format"
    TextBox1.Text = ""
    TextBox1.SetFocus
    End If
End If
End Sub

Re: กำหนด SetFocus เข้าตัวเองไม่ได้

Posted: Wed Nov 07, 2018 4:05 pm
by astalavista
ลองเพิ่ม KeyCode = 0 เพื่อเคลียการกด enter
เข้าไปหลังบรรทัด MsgBox ดูครับ

Re: กำหนด SetFocus เข้าตัวเองไม่ได้

Posted: Wed Nov 07, 2018 4:09 pm
by apforever
astalavista wrote: Wed Nov 07, 2018 4:05 pm ลองเพิ่ม KeyCode = 0 เพื่อเคลียการกด enter
เข้าไปหลังบรรทัด MsgBox ดูครับ
ได้แล้วครับ อยากทราบความหมายของ keycode = 0 ครับ
แล้วจะมีหมายเลขอื่นๆ อีกมั้ยครับ ขอบคุณครับ

Re: กำหนด SetFocus เข้าตัวเองไม่ได้

Posted: Wed Nov 07, 2018 4:15 pm
by astalavista
Keycode ใน sub นี้ น่าจะหมายถึงรหัส ASCII ของ keyboard ที่กดลงไปครับ โดย 0 = null
ลองเปิด google แล้ว search ว่า ascii เพื่อดูข้อมูลเพิ่มเติมครับ :D :D

Re: กำหนด SetFocus เข้าตัวเองไม่ได้

Posted: Wed Nov 07, 2018 4:23 pm
by apforever
astalavista wrote: Wed Nov 07, 2018 4:15 pm Keycode ใน sub นี้ น่าจะหมายถึงรหัส ASCII ของ keyboard ที่กดลงไปครับ โดย 0 = null
ลองเปิด google แล้ว search ว่า ascii เพื่อดูข้อมูลเพิ่มเติมครับ :D :D
ขอบคุณสำหรับแนวทางครับ :thup:

Re: กำหนด SetFocus เข้าตัวเองไม่ได้

Posted: Thu Nov 08, 2018 8:21 am
by apforever
แชร์โค้ดครับ

Code: Select all

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
    If Not IsNumeric(Me.TextBox1.Text) Then
    MsgBox "please input number format"
    Keycode = 0
    TextBox1.Text = ""
    TextBox1.SetFocus
    End If
End If
End Sub