-
VBA xác định vị trí con trỏ đang Setfocus
Minh Tiên > 05-09-17, 11:58 AM
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 ! -
RE: VBA xác định vị trí con trỏ đang Setfocus
tranthanhan1962 > 05-09-17, 01:51 PM
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? -
RE: VBA xác định vị trí con trỏ đang Setfocus
ongke0711 > 05-09-17, 02:19 PM
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 -
RE: VBA xác định vị trí con trỏ đang Setfocus
Minh Tiên > 05-09-17, 04:38 PM
(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:
Load 1 lần cho Form. (OnOpen)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
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 !