thay click chuột vào cmb bằng phím tắt? (1 người xem)

Liên hệ QC

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

hoatinhyeu862000

Thành viên hoạt động
Tham gia
19/7/13
Bài viết
135
Được thích
3
như tiêu đề em đã đặt ra xin các thầy giúp em cách thay vì phải di chuyển chuột đến nút cmb bang cách ấn phím f1 hoặc fn(n = 1->12) như trong vd em đã minh họa ở dưới file đính kèm có 1 userform1 và setfocus ở tb1 cùng 1 cmb ạ, thay vì kick chuột thì e có thể ấn phím f1 để tác động vào phím đó ạ. xin cảm ơn anh chị, thầy, cô.
 

File đính kèm

Cần quái gì phím tắt trời, khi form được show, lúc này con trỏ nó đang focus tại TextBox, bấm Enter hoặc Tab là nó nhảy qua CommandButton rồi, nhấn Enter hay Space Bar là nó chạy sự kiện Click trong nút lệnh đó thôi!
 
Upvote 0
như tiêu đề em đã đặt ra xin các thầy giúp em cách thay vì phải di chuyển chuột đến nút cmb bang cách ấn phím f1 hoặc fn(n = 1->12) như trong vd em đã minh họa ở dưới file đính kèm có 1 userform1 và setfocus ở tb1 cùng 1 cmb ạ, thay vì kick chuột thì e có thể ấn phím f1 để tác động vào phím đó ạ. xin cảm ơn anh chị, thầy, cô.
Bạn có thể sử dụng thuộc tính Acclerator của đối tượng CommandButton. Chẳng hạn với Caption ẤN F1, bạn thiết lập Acclerator là 1, khi đó bạn sẽ nhìn thấy Caption của nút lệnh là ẤN F1, bạn chỉ cần nhấn Alt+1 là tương đương với việc nhấn nút lệnh này.
 
Upvote 0
Bạn có thể sử dụng thuộc tính Acclerator của đối tượng CommandButton. Chẳng hạn với Caption ẤN F1, bạn thiết lập Acclerator là 1, khi đó bạn sẽ nhìn thấy Caption của nút lệnh là ẤN F1, bạn chỉ cần nhấn Alt+1 là tương đương với việc nhấn nút lệnh này.
Dạo này thằng em mình tiến bộ vượt bật hen! Great!
 
Upvote 0
Cần quái gì phím tắt trời, khi form được show, lúc này con trỏ nó đang focus tại TextBox, bấm Enter hoặc Tab là nó nhảy qua CommandButton rồi, nhấn Enter hay Space Bar là nó chạy sự kiện Click trong nút lệnh đó thôi!

Gửi anh đây là em ví dụ form của em hiện tại có 10 tb, với 6 cái cmb thì làm thế nào mà enter đc hả anh? chứ nếu 1 em tb với 1 em cmb thì em cũng sẽ hiểu là k cần anh ạ. xin anh giúp đỡ em.
 
Upvote 0
Bạn có thể sử dụng thuộc tính Acclerator của đối tượng CommandButton. Chẳng hạn với Caption ẤN F1, bạn thiết lập Acclerator là 1, khi đó bạn sẽ nhìn thấy Caption của nút lệnh là ẤN F1, bạn chỉ cần nhấn Alt+1 là tương đương với việc nhấn nút lệnh này.
Gửi anh đối tượng này em cũng đã làm tuy nhiên như thế thì mất time hơn tí síu nên em muốn chỉ phải ấn 1 cái là ok chứ đôi khi tổ hợp như thế còn lâu hơn là click chuột xin anh 1 phương pháp như em đề cập cảm ơn anh.
 
Upvote 0
Gửi anh đối tượng này em cũng đã làm tuy nhiên như thế thì mất time hơn tí síu nên em muốn chỉ phải ấn 1 cái là ok chứ đôi khi tổ hợp như thế còn lâu hơn là click chuột xin anh 1 phương pháp như em đề cập cảm ơn anh.

Nếu vậy thì ta nhấn F1 vậy! Với TextBox1 ta có sự kiện như sau:

Mã:
Private Sub [COLOR=#ff0000]TextBox1[/COLOR]_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 112 Then KeyCode = 0: CommandButton1.SetFocus
End Sub

Với mỗi TextBox ta đều gán sự kiện này thì khi ta hoạt động bất kỳ trên TextBox nào thì khi nhấn F1 nó đều chạy Focus đến CommandButton.
 
Upvote 0
Gửi Thầy Nghĩa em đã thử và hiểu nguyên tắc tuy nhiên em muốn hỏi thêm 1 chút cái đoạn code này thì nó chỉ là setfocus cho cmb1 điều em muốn ở đây là nó sẽ thay cho việc click chứ k đơn thuần là nó chọn cmb1 như hiện tại. Tức là thay cho việc di chuyển chuột đến và kick chuột trái thì nay chỉ việc ấn phím f1 là xong, còn theo hướng của thầy thì phải là ấn phím f1 sau đó enter nó mới đc như vậy sẽ diễn ra 2 công đoạn mất rồi ạ vậy xin thầy giúp đỡ theo hướng chỉ cần ấn f1 thay cho việc kết hợp f1 -> enter. Chân thành cảm ơn thầy!
 
Upvote 0
Gửi Thầy Nghĩa em đã thử và hiểu nguyên tắc tuy nhiên em muốn hỏi thêm 1 chút cái đoạn code này thì nó chỉ là setfocus cho cmb1 điều em muốn ở đây là nó sẽ thay cho việc click chứ k đơn thuần là nó chọn cmb1 như hiện tại. Tức là thay cho việc di chuyển chuột đến và kick chuột trái thì nay chỉ việc ấn phím f1 là xong, còn theo hướng của thầy thì phải là ấn phím f1 sau đó enter nó mới đc như vậy sẽ diễn ra 2 công đoạn mất rồi ạ vậy xin thầy giúp đỡ theo hướng chỉ cần ấn f1 thay cho việc kết hợp f1 -> enter. Chân thành cảm ơn thầy!

Nếu vậy thì cần gì phải có nút lệnh ta? Mà thôi, nếu làm biếng thì nhấn F1 còn làm siêng thì rê chuột đến nút lệnh và click hen!


Giả sử nút lệnh có sự kiện Click như sau:

Mã:
Private Sub [B][COLOR=#ff0000]CommandButton1_Click[/COLOR][/B]()
    MsgBox "Do not click me, please!"
End Sub

Thì sự kiện KeyDown của TextBox sẽ như thế này:

Mã:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 112 Then KeyCode = 0: [B][COLOR=#FF0000]CommandButton1_Click[/COLOR][/B]
End Sub

Quá đơn giản phải không?
 
Upvote 0
Nếu vậy thì cần gì phải có nút lệnh ta? Mà thôi, nếu làm biếng thì nhấn F1 còn làm siêng thì rê chuột đến nút lệnh và click hen!


Giả sử nút lệnh có sự kiện Click như sau:

Mã:
Private Sub [B][COLOR=#ff0000]CommandButton1_Click[/COLOR][/B]()
    MsgBox "Do not click me, please!"
End Sub

Thì sự kiện KeyDown của TextBox sẽ như thế này:

Mã:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 112 Then KeyCode = 0: [B][COLOR=#ff0000]CommandButton1_Click[/COLOR][/B]
End Sub

Quá đơn giản phải không?

Kiểu gì cũng phải them 1 sự kiện cmb- Click hả thầy? vậy thì em nghĩ phương án đầu của thầy vẫn là ổn hơn vì dù sao vẫn qua 2 công đoạn ở đây chỉ them có 1 sự kiện msgbox hiện ra để thong báo "Do not click me, please!"(tạm dịch: xin đừng dí vào em @@") mà thay vào đó là dí phím f1 và space or enter ạ?!
 
Upvote 0
Kiểu gì cũng phải them 1 sự kiện cmb- Click hả thầy? vậy thì em nghĩ phương án đầu của thầy vẫn là ổn hơn vì dù sao vẫn qua 2 công đoạn ở đây chỉ them có 1 sự kiện msgbox hiện ra để thong báo "Do not click me, please!"(tạm dịch: xin đừng dí vào em @@") mà thay vào đó là dí phím f1 và space or enter ạ?!

Trời ơi, chắc bạn mới biết lập trình à? Nút lệnh nào mà không có sự kiện CLICK? Cái MsgBox đó tôi ví dụ vậy thôi, còn câu lệnh nào đó trong cái sự kiện Click đó là do bạn viết, bạn muốn viết thế nào thì ra thế đó chứ? Hic hic.
 
Upvote 0
Kiểu gì cũng phải them 1 sự kiện cmb- Click hả thầy? vậy thì em nghĩ phương án đầu của thầy vẫn là ổn hơn vì dù sao vẫn qua 2 công đoạn ở đây chỉ them có 1 sự kiện msgbox hiện ra để thong báo "Do not click me, please!"(tạm dịch: xin đừng dí vào em @@") mà thay vào đó là dí phím f1 và space or enter ạ?!
Ngộ hén, vẽ một cái nút lệnh lên đó mà hổng cho "dí" vào thì ai chơi?! Vậy thì bạn vẽ nó lên để làm gì, để trang trí hay để thực hiện lệnh? Nếu để thực hiện lệnh thì đương nhiên là các lệnh này phải nằm trong sự kiện Click của nút chứ sao nữa.
 
Upvote 0

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

Back
Top Bottom