Page 1 of 1

SetFocus ของ TextBox ในกรณีหลาย Frame

Posted: Mon Oct 04, 2021 11:01 pm
by waritthorn
ผมได้สร้าง Frame ในการกรอกข้อมูลหลายอัน โดยที่แต่ละอันมี TextBox ในการ input ข้อมูล
ผมติดปัญหาในการตั้งค่า Tab Order ให้ลำดับการทำงานของ TextBox1 ใน Frame1 แล้วต่อไปยัง TextBox3 ใน Frame3 ไม่ได้ครับ
โดยโค๊ดที่เขียนข้างต้นขึ้น Error ครับ
สอบถามผู้รู้ว่าสามารถตั้งให้หลังจากกรอกข้อมูลใน TextBox แล้วสามารถตั้งให้ไป Focus ที่ TextBox ใน Frame อื่นได้อย่างไรครับ

Code: Select all

Private Sub TextBox8_AfterUpdate()
    TextBox11.SetFocus
End Sub
หรือลองเป็นหลังจากออกจาก TextBox โปรแกรมก็ยังไม่เลือกไปที่ TextBox11 ครับ

Code: Select all

Private Sub TextBox8_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    TextBox11.SetFocus
End Sub
ตัดผ่าใหม่ 29-9-2021.xlsm

Re: SetFocus ของ TextBox ในกรณีหลาย Frame

Posted: Tue Oct 05, 2021 8:49 am
by snasui
:D Mark AfterUpdate และ Exit ให้เป็น Comment ใช้ Keydown แทนเช่นด้านล่างครับ

Code: Select all

Private Sub TextBox8_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then TextBox11.SetFocus
End Sub
KeyCode = 13 คือ Enter หมายถึงเมื่อ Enter จะไป SetForcus ให้กับ TextBox11

Re: SetFocus ของ TextBox ในกรณีหลาย Frame

Posted: Tue Oct 05, 2021 8:55 am
by waritthorn
ขอบคุณครับอาจารย์
สามารถใช้งานได้แล้วครับ

สอบถามเพื่อเพิ่มความรู้เกี่ยวกับ KeyCode ครับ
แต่ละเลขของ KeyCode หมายถึงอะไรเหรอครับ ผมไปหามามีคนบอกให้ใช้ KeyCode = 9 แต่ผมใช้แล้วย้ายไปที่ TextBox ทันที เลยอยากทราบแต่ละเลขหมายความว่ายังไงครับ

Re: SetFocus ของ TextBox ในกรณีหลาย Frame

Posted: Tue Oct 05, 2021 9:07 am
by snasui
:D ตัวอย่างการดู Keycode ตามภาพครับ

Re: SetFocus ของ TextBox ในกรณีหลาย Frame

Posted: Tue Oct 05, 2021 9:17 am
by waritthorn
ขอบคุณมากครับผม