Vấn đề về Tab trên form nhập liệu

Liên hệ QC

acsenco

Thành viên mới
Tham gia
24/5/13
Bài viết
11
Được thích
1
Anh chị giúp em về cách khi tab thì dấu nháy vào các Textbox trong Form nhập liệu này theo thứ tự với. Mặc dù đã đổi tên các textbox thành : a1,a2,a3..... nhưng khi Tab vẫn không theo đúng thứ tự.
 

File đính kèm

  • Ton kho PT07.rar
    319.1 KB · Đọc: 51
Anh chị giúp em về cách khi tab thì dấu nháy vào các Textbox trong Form nhập liệu này theo thứ tự với. Mặc dù đã đổi tên các textbox thành : a1,a2,a3..... nhưng khi Tab vẫn không theo đúng thứ tự.

Tên thì chả liên quan gì tới "Lịch trình" của Tab. Vài thông tin:

1. Trực tiếp trên Form có những control khác Frame như CommandButton, TextBox, ComboBox, ListBox, Label ..., và control Frame. Mỗi control này có TabIndex (tính từ 0) xác định thứ tự mà Tab sẽ "nhẩy nhót, bay lượn". Những control nào nằm trực tiếp trong Frame thì TabIndex của chúng lại được tính từ 0. Tôi lấy vd. cho bạn hiểu. Có 1 ông bố (Form) có nhiều người con (control) gọi là anh 1 (anh cả), anh 2 (anh hai), anh 3 (anh ba) ... Anh 2 - anh hai (Frame1) cũng có những đứa con gọi là anh 1 (anh cả), anh 2 (anh hai), anh 3 (anh ba) ... Anh 3 - anh ba (Frame3) cũng có những đứa con gọi là anh 1 (anh cả), anh 2 (anh hai), anh 3 (anh ba) ... Riêng anh 1 - anh cả không có con nào (vì không là Frame mà là CommandButton, TextBox, ComboBox, ListBox, Label ...). Tất cả những con của ông bố 1 và con của anh hai, anh ba tạo thành "con cháu" của ông bố 1 - tập UserForm.Controls

2. Mỗi control lại có TabStop. Nếu TabStop = FALSE thì khi "bay lượn" TAB sẽ bỏ qua control đó mà "ghé" thăm control tiếp theo.

3. Khi TAB ghé thăm Frame thì nó "nhẩy" thẳng vào ghé thăm luôn con (nếu có) của Frame mà có TabIndex = 0

4. Vì Label không là "nơi" mà người dùng thao tác nên mặc định thì Label có TabStop = FALSE tức sẽ bị TAB bỏ qua.
---------------
Về vấn đề của bạn thì:

1. Nếu bạn nhấn TAB lần thứ 5 thì Focus nhẩy vào Frame6 do Frame6.TabIndex = 3 (Label13.TabIndex = 2 nhưng có TabStop = FALSE). Nhưng Frame6 chỉ có toàn Label (vịt trời) nên chả lý gì ta lại cho nó là "khách" của TAB vì chỉ tốn thêm 1 lần nhấn TAB để ra khỏi nó.
Vậy bạn chỉnh TabStop cho Frame thành FALSE.

2. Các control còn lại: CommandButton, TextBox, ComBoBox, ListBox và Frame4 bạn đặt TabIndex theo thứ tự mà TAB tới thăm.
 
Upvote 0
Đọc bài của Bác Siwtom vừa dí dỏm nhưng khá đủ nguyên tắc dịch chuyển trên Form rồi đấy.
Sau khi nắm nguyên tắc rồi thì mở Property của từng Control để thiết lập TableIndex và Table Stop cho nó.
Mẹo thiết lập nhanh:
Trên nền Form nhấn chuột phải--Chọn Table Order
Trên Dialog chọn vệt sáng vào tên điều khiển rồi nếu dùng Move Up và Move Down để thay đổi thứ tự theo ý mình.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom