Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
VBA xác định vị trí con trỏ đang Setfocus
#1
Xin chào cả nhà !

Để xác định vị trí Setfocus (Con trỏ hiện trạng) Tiên đang dùng một Biến strContro trên form.
Cứ tại mỗi đối tượng (ObjName) có Setfocus trên form, tại thủ tục OnGotFocus Tiên gán strContro = Me.ObjName.Name và xác định vị trí cuối cùng (hiện tại) của con trỏ thông qua biến strContro.

Xong cách này có vẻ củ chuối quá, hơn nữa tại mỗi OnGotFocus của ObjName phải gán một lần --> Nhiều quá.

Nhờ cả nhà chỉ giáo, đoạn VBA nào xác định được ngay vị trí con trỏ đang SetFocus không ?

Cảm ơn nhiều !
Chữ ký của Minh Tiên -----------------------------------------------
Đường tuy ngắn, không đi không đến
Việc tuy nhỏ, không làm không nên.
                                           Tuân Tử
-----------------------------------------------
Reply
Những người đã cảm ơn
#2
Có phải bạn muốn đổi màu control khi control nào được GotFocus và trở về màu bình thường khi mất focus?
Chữ ký của tranthanhan1962 Kết quả cuối cùng của một đời người, không phải bạn có được bao nhiêu tiền bạc, tài sản. Mà bạn còn bao nhiêu người bạn  thumbs up
ღღღღღTài sản của tranthanhan1962 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#3
Dùng thuộc tính .ActiveControl thử xem.
- Form: Me.ActiveControl
- Screen.ActiveControl

Vd: 
   Dim strContro As String
       strContro = Me.ActiveControl.Name

Hoặc

  Dim ctlCurControl As Control
  Dim strContro As String
      Set ctlCurControl = Me.ActiveControl
      strControl = ctlCurControl.Name
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn Minh Tiên
#4
(05-09-17, 01:51 PM)tranthanhan1962 Đã viết: Có phải bạn muốn đổi màu control khi control nào được GotFocus và trở về màu bình thường khi mất focus?

Thanks A Ân quan tâm.

Tiên làm GotFocus và LostForcus thì OK rồi.
Khi kết hợp MoveMouse thì bất ổn vì khi Move vào một đối tượng nào đó thì nó xóa luôn Format của GotFocus.
Giờ thì Tiên đã kết hợp được rồi.
Xong đối với Focus thì Tiên dùng code:
Mã:
Public Function Focus(ByRef frm As Form)

   Dim Ctl As Control
   For Each Ctl In frm
       If InStr(1, Ctl.Tag, "Focus") > 0 Then
           If TypeOf Ctl Is CommandButton Or TypeOf Ctl Is TextBox Or TypeOf Ctl Is ComboBox Then
               Ctl.OnGotFocus = "=HandleFocus([" & Ctl.Name & "], True)"
               Ctl.OnLostFocus = "=HandleFocus([" & Ctl.Name & "], False)"
           End If
       End If
   Next
   
End Function
Load 1 lần cho Form. (OnOpen)

Còn đối với MoveMouse hiện không biết cách nào để Load 1 lần cho Form (Phải thông qua từng Obj).
 Nhờ A cùng các Pro chỉ giáo thêm.

Thanks All !
Chữ ký của Minh Tiên -----------------------------------------------
Đường tuy ngắn, không đi không đến
Việc tuy nhỏ, không làm không nên.
                                           Tuân Tử
-----------------------------------------------
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Thủ Thuật] Thiết lập tự động Windows Regional ngày/tháng, định dạng tiền, số ongke0711 1 621 16-11-17, 02:42 PM
Bài mới nhất: vuthaiha90
  [Hỏi] Định dạng dd/mm/yyyy và 123.456.789,00 trong vba vuthaiha90 2 601 15-11-17, 12:17 AM
Bài mới nhất: ongke0711
Heart Chạy lệnh tự động theo thời gian định sẵn minhriohtn 1 806 22-12-16, 11:22 AM
Bài mới nhất: ongke0711
  Tạo Form đăng ký tài khoản phuc_thanhtien 15 4,875 27-09-16, 12:19 AM
Bài mới nhất: maidinhdan
  [Hỏi] Edit, Delete Record đang chọn iatod 0 650 20-02-16, 03:38 PM
Bài mới nhất: iatod

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ| PMA Nha Trang| Gỗ Acrylic Không Đường Line