Trợ giúp bài tập form Load picture (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

sakura1010

Thành viên mới
Tham gia
4/4/09
Bài viết
32
Được thích
2
Nhờ trợ giúp bài tập.
Bài tập mình khi lick chọn câu hỏi (1,2,3,4... và câu hỏi gắn với CommandButton).
- khi chọn câu hỏi 1 sẽ load picture số 1
- khi chọn câu hỏi 2 sẽ load picture số 2
vậy khi chọn câu hỏi nào sẽ tương ứng load picture theo số câu hỏi đó.
 

File đính kèm

Nhờ trợ giúp bài tập.
Bài tập mình khi lick chọn câu hỏi (1,2,3,4... và câu hỏi gắn với CommandButton).
- khi chọn câu hỏi 1 sẽ load picture số 1
- khi chọn câu hỏi 2 sẽ load picture số 2
vậy khi chọn câu hỏi nào sẽ tương ứng load picture theo số câu hỏi đó.
Dùng thử code này xem sao.
Mã:
Image1.Picture = LoadPicture(ThisWorkbook.Path & "/pic/1.jpg")
 
Upvote 0
Upvote 0
Nhờ trợ giúp bài tập.
Bài tập mình khi lick chọn câu hỏi (1,2,3,4... và câu hỏi gắn với CommandButton).
- khi chọn câu hỏi 1 sẽ load picture số 1
- khi chọn câu hỏi 2 sẽ load picture số 2
vậy khi chọn câu hỏi nào sẽ tương ứng load picture theo số câu hỏi đó.
Về phân LoadPicture ta không bàn đến. Ở đây tôi muốn nói đến việc chọn đáp án, tại sao lại là Checkbox được nhỉ? Bạn chọn 1 trong 4 đáp án thì phải dùng OptionButton chứ, như vậy mới không có việc chọn cùng lúc nhiều đáp án
 
Upvote 0
Về phân LoadPicture ta không bàn đến. Ở đây tôi muốn nói đến việc chọn đáp án, tại sao lại là Checkbox được nhỉ? Bạn chọn 1 trong 4 đáp án thì phải dùng OptionButton chứ, như vậy mới không có việc chọn cùng lúc nhiều đáp án

Để sử dụng 1 mẫu chung với các câu hỏi có nhiều đáp án trong 1 đề thi.
Thí sanh phải tỉnh thức, nếu muốn chọn đáp án khác thì phải tự tay gỡ check đáp án cũ, quên gỡ là tại thí sanh. -+*/-+*/
 
Upvote 0
Để sử dụng 1 mẫu chung với các câu hỏi có nhiều đáp án trong 1 đề thi.
Thí sanh phải tỉnh thức, nếu muốn chọn đáp án khác thì phải tự tay gỡ check đáp án cũ, quên gỡ là tại thí sanh. -+*/-+*/
Như AutoReply đã nói trong câu hỏi, phần đáp án có thể nhiều đáp án nên sử dụng phần checkbox.
Bài đã được tự động gộp:

Cho mình hỏi thêm về phần chọn đáp án.
ví dụ câu hỏi 1:
Ngoài sử dụng chuột click chọn checkbox 1 trong 4 đáp án.
Mình có thể sử dụng bàn phím số để chọn đáp án được không.
 
Lần chỉnh sửa cuối:
Upvote 0
Như AutoReply đã nói trong câu hỏi, phần đáp án có thể nhiều đáp án nên sử dụng phần checkbox.
Bài đã được tự động gộp:

Cho mình hỏi thêm về phần chọn đáp án.
ví dụ câu hỏi 1:
Ngoài sử dụng chuột click chọn checkbox 1 trong 4 đáp án.
Mình có thể sử dụng bàn phím số để chọn đáp án được không.

Mình cũng không rành bạn ơi, bạn hỏi anh giaiphap cho chắc ăn nhá. -\\/.
 
Upvote 0
Ngoài sử dụng chuột click chọn checkbox 1 trong 4 đáp án.
Mình có thể sử dụng bàn phím số để chọn đáp án được không.
Khi bạn dùng chuột thì click ở đâu là focus ở đó.

Khi bạn dùng bàn phím thì bạn phải chuyển focus tới chỗ bạn quan tâm. Nói nôm na là bạn phải làm cho "chỗ" đó là control hiện tại nhận mọi input từ bàn phím. Để di chuyển tới chỗ cần quan tâm, vd. CheckBox, TextBox ... thì bạn nhấn phím Tab. Thứ tự di chuyển qua các control, tức "lộ trình" của focus bạn có thể thiết lập bằng cách thiết lập thuộc tính TabIndex (trong cửa sổ Properties hoặc bằng code). Nếu bạn muốn lộ trình bỏ qua control nào đó thì thiết lập thuộc tính TabStop của nó thành False.

Khi đã di chuyển tới CheckBox đang quan tâm thì nhấn phím SPACE để chọn (khi chưa được chọn) hoặc bỏ chọn (khi đang được chọn).
 
Upvote 0
Khi bạn dùng chuột thì click ở đâu là focus ở đó.

Khi bạn dùng bàn phím thì bạn phải chuyển focus tới chỗ bạn quan tâm. Nói nôm na là bạn phải làm cho "chỗ" đó là control hiện tại nhận mọi input từ bàn phím. Để di chuyển tới chỗ cần quan tâm, vd. CheckBox, TextBox ... thì bạn nhấn phím Tab. Thứ tự di chuyển qua các control, tức "lộ trình" của focus bạn có thể thiết lập bằng cách thiết lập thuộc tính TabIndex (trong cửa sổ Properties hoặc bằng code). Nếu bạn muốn lộ trình bỏ qua control nào đó thì thiết lập thuộc tính TabStop của nó thành False.

Khi đã di chuyển tới CheckBox đang quan tâm thì nhấn phím SPACE để chọn (khi chưa được chọn) hoặc bỏ chọn (khi đang được chọn).

Theo như Batman1,việc thiết lập thuộc tính TabIndex không phải như ý mình.
Ý của mình là trên FORM nhập liệu chỉ sử dụng số 1 cho đáp án 1, số 2 cho đáp án 2, số 3 cho đáp án 3, số 4 cho đáp án 4.

khi mình chọn đáp án chỉ thao tác bấm số sẽ check vào checkbox cố định.
ví dụ: ta chọn câu 1 đáp án 2 là đúng, thao tác bấm số 2 là xong.
chuyển đến câu số 2 đáp án 1 là đúng, thao tác bấm số 1 là xong.
 
Upvote 0
Theo như Batman1,việc thiết lập thuộc tính TabIndex không phải như ý mình.
Ý của mình là trên FORM nhập liệu chỉ sử dụng số 1 cho đáp án 1, số 2 cho đáp án 2, số 3 cho đáp án 3, số 4 cho đáp án 4.

khi mình chọn đáp án chỉ thao tác bấm số sẽ check vào checkbox cố định.
ví dụ: ta chọn câu 1 đáp án 2 là đúng, thao tác bấm số 2 là xong.
chuyển đến câu số 2 đáp án 1 là đúng, thao tác bấm số 1 là xong.
Điều đó có vẻ phức tạp đấy, code sẽ dài dài ra mà coi, vì làm sao ta biết được người ta đang trả lời câu số mấy mà checkbox cho đúng. Chắc chỉ con nước căn cứ vào active control, rồi tính toán ra.
 
Upvote 0
Điều đó có vẻ phức tạp đấy, code sẽ dài dài ra mà coi, vì làm sao ta biết được người ta đang trả lời câu số mấy mà checkbox cho đúng. Chắc chỉ con nước căn cứ vào active control, rồi tính toán ra.
Theo mình nghĩ là dựa vào câu số mấy thì quy ra cell đang ở đâu và kết hợp là đáp án
 
Upvote 0
Theo như Batman1,việc thiết lập thuộc tính TabIndex không phải như ý mình.
Ý của mình là trên FORM nhập liệu chỉ sử dụng số 1 cho đáp án 1, số 2 cho đáp án 2, số 3 cho đáp án 3, số 4 cho đáp án 4.

khi mình chọn đáp án chỉ thao tác bấm số sẽ check vào checkbox cố định.
ví dụ: ta chọn câu 1 đáp án 2 là đúng, thao tác bấm số 2 là xong.
chuyển đến câu số 2 đáp án 1 là đúng, thao tác bấm số 1 là xong.
Cho dù bạn bấm số 1, 2 hay a, b, +, / hay gì chăng nữa thì "tín hiệu" từ bàn phím sẽ được control đang có focus nhận. Nếu bạn đang ở TextBox hoặc CheckBox1 thì TextBox1 hoặc CheckBox1 sẽ nhận Input. Không ai có thể đoán được là bạn đang muốn CheckBox2 hay CheckBox3 sẽ nhận Input. Suy nghĩ một chút đi.

Tức vẫn phải chuyển focus tới nơi quan tâm rồi mới tính tiếp được.

Windows không lường được trường hợp là ai đó muốn tiết kiệm từng cái click, từng cái nhấn phím.

Cùng lắm là bạn xoay xở: vd. đặt TextBox và thiết lập mọi control khác có TabStop là False. Phục vụ sự kiên TextBox_Change và nếu 1 thì chọn CheckBox1, nếu 2, 3, 4 thì ...
Rồi bạn xem bạn tiết kiệm được bao nhiêu cái nhấn phím. Cùng lắm bạn chỉ có 4 CheckBox mà cũng muốn tiết kiệm.

Tôi không đi chuyên sâu vào những chuyện vô bổ như tiết kiệm lần gõ. Thay vì mỗi lần gặp năm 1998 phải gõ a, gặp 1999 phải gõ b thì tôi gõ 1998 và 1999 cho nhanh. Khỏi phải vò đầu bứt tai, liệu 1998 là a và 1999 là b hay ngược lại. Hoặc là học thuộc lòng. Nhưng tôi không bao giờ thích học thuộc lòng.

Nếu bạn có khó khăn về code, muốn hiểu về cách thức hoạt động thì tôi sẵn sàng. Còn chuyện tiết kiệm ngón tay thì xin chờ người khác. Tôi không đam mê những cái như thế.
 
Upvote 0
Cho dù bạn bấm số 1, 2 hay a, b, +, / hay gì chăng nữa thì "tín hiệu" từ bàn phím sẽ được control đang có focus nhận. Nếu bạn đang ở TextBox hoặc CheckBox1 thì TextBox1 hoặc CheckBox1 sẽ nhận Input. Không ai có thể đoán được là bạn đang muốn CheckBox2 hay CheckBox3 sẽ nhận Input. Suy nghĩ một chút đi.

Tức vẫn phải chuyển focus tới nơi quan tâm rồi mới tính tiếp được.

Windows không lường được trường hợp là ai đó muốn tiết kiệm từng cái click, từng cái nhấn phím.

Cùng lắm là bạn xoay xở: vd. đặt TextBox và thiết lập mọi control khác có TabStop là False. Phục vụ sự kiên TextBox_Change và nếu 1 thì chọn CheckBox1, nếu 2, 3, 4 thì ...
Rồi bạn xem bạn tiết kiệm được bao nhiêu cái nhấn phím. Cùng lắm bạn chỉ có 4 CheckBox mà cũng muốn tiết kiệm.

Tôi không đi chuyên sâu vào những chuyện vô bổ như tiết kiệm lần gõ. Thay vì mỗi lần gặp năm 1998 phải gõ a, gặp 1999 phải gõ b thì tôi gõ 1998 và 1999 cho nhanh. Khỏi phải vò đầu bứt tai, liệu 1998 là a và 1999 là b hay ngược lại. Hoặc là học thuộc lòng. Nhưng tôi không bao giờ thích học thuộc lòng.

Nếu bạn có khó khăn về code, muốn hiểu về cách thức hoạt động thì tôi sẵn sàng. Còn chuyện tiết kiệm ngón tay thì xin chờ người khác. Tôi không đam mê những cái như thế.

Cảm ơn batman1 tư vấn, nói chung mình cũng không hiểu rõ về code mấy và cách thức hoạt động ra sao.
Nên có những suy nghĩ không đồng nhất về vấn đề nêu trên.
Có gì các anh em cho ý kiến
 
Upvote 0
khi mình chọn đáp án chỉ thao tác bấm số sẽ check vào checkbox cố định.
ví dụ: ta chọn câu 1 đáp án 2 là đúng, thao tác bấm số 2 là xong.
chuyển đến câu số 2 đáp án 1 là đúng, thao tác bấm số 1 là xong.
Cứ cho rằng bạn đã làm được chỗ này đi nha. Vậy khi tôi bấm số 2, nghĩa là đáp án 2 được chọn. Xong tôi lại rê chuột chọn thêm đáp án 1 thì khi đó ta đang chọn 2 đáp án cùng lúc (vừa đáp án 1 vừa đáp án 2). Trường hợp này bạn tính sao?
Bởi vậy tôi mới nói dùng CheckBox trong trường hợp này là không phù hợp
------------------------------
Cách tôi làm có hơi khác, nó thế này:

Untitled.jpg
 

File đính kèm

Upvote 0
Cứ cho rằng bạn đã làm được chỗ này đi nha. Vậy khi tôi bấm số 2, nghĩa là đáp án 2 được chọn. Xong tôi lại rê chuột chọn thêm đáp án 1 thì khi đó ta đang chọn 2 đáp án cùng lúc (vừa đáp án 1 vừa đáp án 2). Trường hợp này bạn tính sao?
Bởi vậy tôi mới nói dùng CheckBox trong trường hợp này là không phù hợp
Với trường hợp như trên vừa đáp 1 vừa đáp án 2 là đáp án sai.
Có trường hợp câu hỏi vẫn có 2 đáp án ( chẳng hạn như đáp án : 1 và 2,, 2 và 3, 3 và 4, 1 và 3)
 
Upvote 0
Cúng có loại câu hỏi lấy nhiều kết quả vậy.
Như AutoReply đã nói trong câu hỏi, phần đáp án có thể nhiều đáp án nên sử dụng phần checkbox.
[ô tô mớt]
Cho mình hỏi thêm về phần chọn đáp án.
ví dụ câu hỏi 1:
Ngoài sử dụng chuột click chọn checkbox 1 trong 4 đáp án.
Mình có thể sử dụng bàn phím số để chọn đáp án được không.

Cùng 1 câu mà đã thấy mâu thuẫn rồi.
Dùng số để chọn checkbox, làm thế nào để bỏ chọn? Bấm 1 lần nữa thì bỏ chọn?
Rườm rà quá sức. Học sinh học bài còn phải học thêm cách trả lời trắc nghiệm!

Mình thì sợ nhất những ngừoi thẳng tay yêu cầu trước khi biết được cái yêu cầu đó sẽ hoạt động ra sao.
 
Upvote 0
Với trường hợp như trên vừa đáp 1 vừa đáp án 2 là đáp án sai.
Có trường hợp câu hỏi vẫn có 2 đáp án ( chẳng hạn như đáp án : 1 và 2,, 2 và 3, 3 và 4, 1 và 3)
tôi chưa từng thấy đề thi trắc nghiệm nào mà chọn cùng lúc 2 đáp án cả. Nếu có trường hợp đáp án 1 và 2 đều đúng thì người soạn đề sẽ tạo thêm 1 đáp án 3 nữa, nội dung ghi "Cả 1 và 2 đều đúng". Khi ấy thí sinh chọn 1 cũng sai, chọn 2 cũng sai, chỉ chọn 3 mới là đúng
Mà thôi tùy ý bạn. Nếu có chuyện tương tự vậy thì tôi không tham gia
 
Upvote 0
tôi chưa từng thấy đề thi trắc nghiệm nào mà chọn cùng lúc 2 đáp án cả. Nếu có trường hợp đáp án 1 và 2 đều đúng thì người soạn đề sẽ tạo thêm 1 đáp án 3 nữa, nội dung ghi "Cả 1 và 2 đều đúng". Khi ấy thí sinh chọn 1 cũng sai, chọn 2 cũng sai, chỉ chọn 3 mới là đúng
Mà thôi tùy ý bạn. Nếu có chuyện tương tự vậy thì tôi không tham gia

Có nhiều trường hợp người ta khong muốn "vô tình nhắc". Người làm bài phải tự biết có bao nhiêu câu đúng.
Vả lại, trong 4 câu, có thể 1+2, cũng có thể 1+3 hay 2+3 là đúng. Câu 4 "cả ... đều đúng" làm sao đây?
 
Upvote 0
Mình chưa xem file do không có máy tính nhưng bạn có thể tìm hiểu mấy event keypress hay keydown của form. Thi test có nhiều đáp án mình thấy nhiều lần rồi.
 
Upvote 0
Mình chưa xem file do không có máy tính nhưng bạn có thể tìm hiểu mấy event keypress hay keydown của form. Thi test có nhiều đáp án mình thấy nhiều lần rồi.
Thiệt ra thớt không có kinh nghiệm mới bày vẽ thế này.
Bài thi thì phải đơn giản, nội dung và cách ghi lại đáp án của thí sinh là chủ yếu chứ bảo cái form nó load lung tung một hồi nó chạy sai thì chết cha thí sinh.
Kinh nghiệm co tôi biết mấy cái bài thi vẽ rồng vẽ rắn càng nhiều thì khả năng ghi đáp án (của thí sinh) trật chỗ càng lớn.
 
Upvote 0
Có nhiều trường hợp người ta khong muốn "vô tình nhắc". Người làm bài phải tự biết có bao nhiêu câu đúng.
Vả lại, trong 4 câu, có thể 1+2, cũng có thể 1+3 hay 2+3 là đúng. Câu 4 "cả ... đều đúng" làm sao đây?
câu hỏi này đáp án 1 và 2 mới đúng
 

File đính kèm

  • 238.JPG
    238.JPG
    40.1 KB · Đọc: 5
Upvote 0
tôi chưa từng thấy đề thi trắc nghiệm nào mà chọn cùng lúc 2 đáp án cả. Nếu có trường hợp đáp án 1 và 2 đều đúng thì người soạn đề sẽ tạo thêm 1 đáp án 3 nữa, nội dung ghi "Cả 1 và 2 đều đúng". Khi ấy thí sinh chọn 1 cũng sai, chọn 2 cũng sai, chỉ chọn 3 mới là đúng
Mà thôi tùy ý bạn. Nếu có chuyện tương tự vậy thì tôi không tham gia
Đây là những câu hỏi thi lý thuyết luật giao thông đường bộ.
 
Upvote 0
Mình chưa xem file do không có máy tính nhưng bạn có thể tìm hiểu mấy event keypress hay keydown của form.
Dĩ nhiên để dùng được KeyDown, KeyUp, KeyPress của Form thì Form phải có focus. Trong toàn bộ system Windows ở mỗi thời điểm chỉ có 1 control duy nhất trong 1 cửa sổ duy nhất là đeo huy hiệu "người nhận mọi input từ bàn phím". Đó là control có focus trong cửa sổ active trong system. Không có chuyện vd. trên cửa sổ có 2 TextBox và khi gõ "a" thì "a" xuất hiện ở cả 2 TextBox.

Người ta có CommandButton, OptionButton/CheckBox, vậy 1 trong chúng sẽ có focus chứ không thể là Form.

Thậm chí nếu ta thiết lập TabStop của mọi controls thành False thì Form chỉ có focus ngay sau khi mở Form. Khi người nhấn CommandButton để chọn đề thì nút đó có focus chứ không phải Form. Vậy để trả lời thì làm sao đây? Bạn làm cách nào để CommandButton1 mất focus và Form lại có focus? Click trên chỗ trống trên Form? Cho dù bạn làm được thì như vậy vẫn phải dùng cả chuột và bàn phím. Và ta xét các thao tác: nhấn CommandButton -> click trên Form -> gõ 1 để chọn hoặcv bỏ chọn CheckBox1. Như thế phải mất 1 click và 1 gõ. Nếu đã phải mất 1 click thì click luôn vào CheckBox1 cho rồi. Chả phải mất thêm 1 gõ?

Nhiều người trong cuộc sống muốn tiết kiệm một cái gì đó nên tìm mọi cách. Cuối cùng mới nhận được kết quả: cái cách dùng để tiết kiệm kia mang lại lượng tiết kiệm nhỏ hơn phí tổn để vận hành nó. Đấy là nói tới những người tò mò kiểm tra và có cơ hội dừng lại. Nhiều người rung đùi cứ nghĩ là mình đã tiết kiệm được và không kiểm tra. Kết quả là được thì ít mà mất lại nhiều hơn.
 
Upvote 0
Dĩ nhiên để dùng được KeyDown, KeyUp, KeyPress của Form thì Form phải có focus. Trong toàn bộ system Windows ở mỗi thời điểm chỉ có 1 control duy nhất trong 1 cửa sổ duy nhất là đeo huy hiệu "người nhận mọi input từ bàn phím". Đó là control có focus trong cửa sổ active trong system. Không có chuyện vd. trên cửa sổ có 2 TextBox và khi gõ "a" thì "a" xuất hiện ở cả 2 TextBox.

Người ta có CommandButton, OptionButton/CheckBox, vậy 1 trong chúng sẽ có focus chứ không thể là Form.

Thậm chí nếu ta thiết lập TabStop của mọi controls thành False thì Form chỉ có focus ngay sau khi mở Form. Khi người nhấn CommandButton để chọn đề thì nút đó có focus chứ không phải Form. Vậy để trả lời thì làm sao đây? Bạn làm cách nào để CommandButton1 mất focus và Form lại có focus? Click trên chỗ trống trên Form? Cho dù bạn làm được thì như vậy vẫn phải dùng cả chuột và bàn phím. Và ta xét các thao tác: nhấn CommandButton -> click trên Form -> gõ 1 để chọn hoặcv bỏ chọn CheckBox1. Như thế phải mất 1 click và 1 gõ. Nếu đã phải mất 1 click thì click luôn vào CheckBox1 cho rồi. Chả phải mất thêm 1 gõ?

Nhiều người trong cuộc sống muốn tiết kiệm một cái gì đó nên tìm mọi cách. Cuối cùng mới nhận được kết quả: cái cách dùng để tiết kiệm kia mang lại lượng tiết kiệm nhỏ hơn phí tổn để vận hành nó. Đấy là nói tới những người tò mò kiểm tra và có cơ hội dừng lại. Nhiều người rung đùi cứ nghĩ là mình đã tiết kiệm được và không kiểm tra. Kết quả là được thì ít mà mất lại nhiều hơn.
Trong thời gian làm bài thi trắc nghiệm sử dụng bàn phím, nên mình có thể áp dụng được FORM không.
Xin cảm ơn.
https://truongdaotaolaixehcm.com/tai-phan-mem-hoc-thi-450-cau-hoi-ly-thuyet-b1-b2-c/
 
Upvote 0
Dĩ nhiên để dùng được KeyDown, KeyUp, KeyPress của Form thì Form phải có focus. Trong toàn bộ system Windows ở mỗi thời điểm chỉ có 1 control duy nhất trong 1 cửa sổ duy nhất là đeo huy hiệu "người nhận mọi input từ bàn phím". Đó là control có focus trong cửa sổ active trong system. Không có chuyện vd. trên cửa sổ có 2 TextBox và khi gõ "a" thì "a" xuất hiện ở cả 2 TextBox.

Người ta có CommandButton, OptionButton/CheckBox, vậy 1 trong chúng sẽ có focus chứ không thể là Form.
Cảm ơn bác, đúng vậy nhưng ta có thể sửa bằng cách tạo 1 Sub KeyDownEvent rồi cho tất cả thủ tục sự kiện KeyDown các control gọi Sub này. Chẳng hạn:
Mã:
Private Sub CheckBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    KeyDownEvent (KeyCode)
End Sub
Private Sub CheckBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    KeyDownEvent (KeyCode)
End Sub
Private Sub CommandButton1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    KeyDownEvent (KeyCode)
End Sub
Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    KeyDownEvent (KeyCode)
End Sub
Sub KeyDownEvent(ByVal KeyCode As Long)
    Select Case KeyCode
        Case 97
            CheckBox1.Value = Not (CheckBox1.Value)
        Case 98
            CheckBox2.Value = Not (CheckBox2.Value)
    End Select
End Sub
Khi chạy chương trình cần bật numlock lên để tránh máy hiểu người dùng bấm nút mũi tên, khi dùng mũi tên để đưa focus vào checkbox thì checkbox tự động bị check và gây kết quả sai
 
Upvote 0
Dĩ nhiên để dùng được KeyDown, KeyUp, KeyPress của Form thì Form phải có focus. Trong toàn bộ system Windows ở mỗi thời điểm chỉ có 1 control duy nhất trong 1 cửa sổ duy nhất là đeo huy hiệu "người nhận mọi input từ bàn phím". Đó là control có focus trong cửa sổ active trong system. Không có chuyện vd. trên cửa sổ có 2 TextBox và khi gõ "a" thì "a" xuất hiện ở cả 2 TextBox.

Người ta có CommandButton, OptionButton/CheckBox, vậy 1 trong chúng sẽ có focus chứ không thể là Form.

Thậm chí nếu ta thiết lập TabStop của mọi controls thành False thì Form chỉ có focus ngay sau khi mở Form. Khi người nhấn CommandButton để chọn đề thì nút đó có focus chứ không phải Form. Vậy để trả lời thì làm sao đây? Bạn làm cách nào để CommandButton1 mất focus và Form lại có focus? Click trên chỗ trống trên Form? Cho dù bạn làm được thì như vậy vẫn phải dùng cả chuột và bàn phím. Và ta xét các thao tác: nhấn CommandButton -> click trên Form -> gõ 1 để chọn hoặcv bỏ chọn CheckBox1. Như thế phải mất 1 click và 1 gõ. Nếu đã phải mất 1 click thì click luôn vào CheckBox1 cho rồi. Chả phải mất thêm 1 gõ?

Nhiều người trong cuộc sống muốn tiết kiệm một cái gì đó nên tìm mọi cách. Cuối cùng mới nhận được kết quả: cái cách dùng để tiết kiệm kia mang lại lượng tiết kiệm nhỏ hơn phí tổn để vận hành nó. Đấy là nói tới những người tò mò kiểm tra và có cơ hội dừng lại. Nhiều người rung đùi cứ nghĩ là mình đã tiết kiệm được và không kiểm tra. Kết quả là được thì ít mà mất lại nhiều hơn.

Về nguyên tắc tương tác bàn phím đối với các control thì rõ rồi, anh nói chuẩn không cần chỉnh. Nhưng nghĩ kỹ trường hợp này của chủ thớt vẫn có thể áp dụng được, về nguyên tắc thí sinh phải clik nút bấm để hiển thị nội dung câu hỏi, hoặc phải dùng một phím tắt nào đó để hiển thị nội dung câu hỏi. Vậy chỉ cần save trạng thái của câu hỏi đang được hiển thị. khi người dùng bấm phím số thì căn cứ vào phím bấm và câu hỏi đang được hiển thị ( đã save trước rùi) thì ta có thể tính được checkbox nào đang cần check. Ở đây dùng code để check, chứ không thể mong rằng gõ số 1 thì con checkbox nó tự check được.
 
Upvote 0
Về nguyên tắc tương tác bàn phím đối với các control thì rõ rồi, anh nói chuẩn không cần chỉnh. Nhưng nghĩ kỹ trường hợp này của chủ thớt vẫn có thể áp dụng được,
Tôi đưa ra nguyên tắc duyệt các controls bằng bàn phím là nguyên tắc chung trong Windows. Nó không dính dáng gì tới Excel và VBA. Bản thân tôi có lần bị hỏng chuột mà ngày lễ không mua được nên cả ngày tôi dùng bàn phím. Mở các chương trình EXE trên Desktop, trong các thư mục và làm việc, viết văn bản và lưu lại v...v
Tôi tưởng người hỏi chỉ hỏi về tính khả thi. Sau đó mới rõ ra là người ta muốn tiết kiệm ngón tay.
Chưa có chỗ nào tôi nói là không làm được bằng bàn phím. Tôi có ý kiến về những cái cụ thể đã được đưa ra.
Vd. ý tưởng dùng UserForm_KeyDown. Câu hỏi: code UserForm_KeyDown để làm gì khi mà nó không bao giờ được thực hiện? Vì không bao giờ Form có focus.
Tôi từng làm việc 1 ngày chỉ bằng bàn phím, chả cần code gì cả vì ví dụ tôi muốn mở notepad (chuột bị hỏng), viết văn bản và lưu lại thì code gì ở đây?), thì tôi biết là mọi việc đều khả thi. Nhất là khi dùng kèm với code. Nhưng tôi không đam mê những trò nhí nhố. Nghĩ ra cách để áp đặt thí sinh? Làm sao áp đặt được. Họ thích cách nào thì họ sẽ dùng cách đó, không áp đặt được. Nếu lựa chọn thì tôi tin là 99,99 % họ dùng chuột. Mà có cho là anh A dùng bàn phím còn tôi dùng chuột click thẳng vào CheckBox thì anh A cũng không nhanh và tiết kiệm được gì hơn tôi.
Vậy thì nghĩ ra những trò đó để làm gì? Chỉ để cho các vị giáo sư giết thời gian trong các cuộc nhậu, bàn về tính khả thi, bàn về mặt lý thuyết?
 
Upvote 0
Tôi đưa ra nguyên tắc duyệt các controls bằng bàn phím là nguyên tắc chung trong Windows. Nó không dính dáng gì tới Excel và VBA. Bản thân tôi có lần bị hỏng chuột mà ngày lễ không mua được nên cả ngày tôi dùng bàn phím. Mở các chương trình EXE trên Desktop, trong các thư mục và làm việc, viết văn bản và lưu lại v...v
Tôi tưởng người hỏi chỉ hỏi về tính khả thi. Sau đó mới rõ ra là người ta muốn tiết kiệm ngón tay.
Chưa có chỗ nào tôi nói là không làm được bằng bàn phím. Tôi có ý kiến về những cái cụ thể đã được đưa ra.
Vd. ý tưởng dùng UserForm_KeyDown. Câu hỏi: code UserForm_KeyDown để làm gì khi mà nó không bao giờ được thực hiện? Vì không bao giờ Form có focus.
Tôi từng làm việc 1 ngày chỉ bằng bàn phím, chả cần code gì cả vì ví dụ tôi muốn mở notepad (chuột bị hỏng), viết văn bản và lưu lại thì code gì ở đây?), thì tôi biết là mọi việc đều khả thi. Nhất là khi dùng kèm với code. Nhưng tôi không đam mê những trò nhí nhố. Nghĩ ra cách để áp đặt thí sinh? Làm sao áp đặt được. Họ thích cách nào thì họ sẽ dùng cách đó, không áp đặt được. Nếu lựa chọn thì tôi tin là 99,99 % họ dùng chuột. Mà có cho là anh A dùng bàn phím còn tôi dùng chuột click thẳng vào CheckBox thì anh A cũng không nhanh và tiết kiệm được gì hơn tôi.
Vậy thì nghĩ ra những trò đó để làm gì? Chỉ để cho các vị giáo sư giết thời gian trong các cuộc nhậu, bàn về tính khả thi, bàn về mặt lý thuyết?
Cảm ơn phần ý kiến của batman1. Đứng về khía cạnh của anh thì có sự nhịn nhận nó khác so với mình.( Thí sinh ai cũng đâu giống nhau, hoàn cảnh, công việc .....)
- khi sử dụng chuột đối với thí sinh tiếp xúc chuột ít độ bấm thiếu chính xác, thời gian để di chuyển chọn check vào đáp án nhiều hơn dùng chuột .
- độ chính xác check đáp án bấm bàn phím cao hơn so với dùng chuột

Không phải áp đặt thí sinh dùng chuột hay bàn phím mà là kết quả cuối cùng sao cho thí sinh đạt điểm tốt, thời gian làm bài nhanh có thể còn kiểm tra lại bài trước khi kết thúc
 
Upvote 0
...
. Nghĩ ra cách để áp đặt thí sinh? Làm sao áp đặt được. Họ thích cách nào thì họ sẽ dùng cách đó, không áp đặt được. Nếu lựa chọn thì tôi tin là 99,99 % họ dùng chuột. Mà có cho là anh A dùng bàn phím còn tôi dùng chuột click thẳng vào CheckBox thì anh A cũng không nhanh và tiết kiệm được gì hơn tôi.
Vậy thì nghĩ ra những trò đó để làm gì? Chỉ để cho các vị giáo sư giết thời gian trong các cuộc nhậu, bàn về tính khả thi, bàn về mặt lý thuyết?

Lúc đầu tôi cũng ngỡ là áp đặt thí sinh.
Nhưng qua mấy bài sau thì tôi đã doán được thớt là trung tâm dạy lái xe. Cái phần mềm này không phải mục đích thi mà là để học sinh làm bài tập kiểm chứng lại hiểu biết.
Chẳng qua là nhờ miễn phí thì cứ việc vẽ voi. May ra được một phần mềm hoành tráng thì trung tâm càng được thiên hạ thích.
Túm lại thì đây chỉ là ý tưởng của thớt, nó chưa được thực hiện cho nên thớt chưa nghiệm được tầm thực dụng của nó. Tôi bảo đảm là những gì bác nói chỉ là nước đổ lá môn. Chỉ khi nào ý tưởng mất tiền thì người ta mới chịu suy nghĩ đến con toán hiệu quả-phí tổn (cost-benefit)

Chú: mà thời buổi này làm ba cái trắc nghiệm bằng form excel thì cổ lỗ quá sức. Muốn theo kịp thời đại thì phần mềm phải viết trên mô bai áp, cho học viên dùng điện thoại hoặc táp lết mới ngon cơm.
 
Upvote 0
Lúc đầu tôi cũng ngỡ là áp đặt thí sinh.
Nhưng qua mấy bài sau thì tôi đã doán được thớt là trung tâm dạy lái xe. Cái phần mềm này không phải mục đích thi mà là để học sinh làm bài tập kiểm chứng lại hiểu biết.
Chẳng qua là nhờ miễn phí thì cứ việc vẽ voi. May ra được một phần mềm hoành tráng thì trung tâm càng được thiên hạ thích.
Túm lại thì đây chỉ là ý tưởng của thớt, nó chưa được thực hiện cho nên thớt chưa nghiệm được tầm thực dụng của nó. Tôi bảo đảm là những gì bác nói chỉ là nước đổ lá môn. Chỉ khi nào ý tưởng mất tiền thì người ta mới chịu suy nghĩ đến con toán hiệu quả-phí tổn (cost-benefit)

Chú: mà thời buổi này làm ba cái trắc nghiệm bằng form excel thì cổ lỗ quá sức. Muốn theo kịp thời đại thì phần mềm phải viết trên mô bai áp, cho học viên dùng điện thoại hoặc táp lết mới ngon cơm.
Đúng rồi minh bên trung tâm dạy lái xe. Mình muốn viết riêng ứng dụng để cho học viên thực hành tốt.
Muốn theo kịp thời đại nhưng hạn chế kiến thức chỉ tới đây đã hết.
 
Upvote 0

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

Back
Top Bottom