![]() |
api - tracking LostFocus or Exit event of a combobox
Hi,
1. I am trying to capture the Exit or LostFocus event of a combobox on a UserForm. The Forms controls don't have a handle in vba and, while trying to find the window 's class using Spy+, it seems like the combobox doesn't have a window assicioted with it (unlike the listbox or a frame). Any idea? Am i missing something? 2. If not direct way to (1) To bypass the 'lack' of window for the combobox, i have placed the combobox into a frame wrapped around it. However, i don't know how to get the handle of the Frame. In spy++, the inside of the userform, the listbox, or the frame have the same class (F3 Server 07600000). Since I always show the frame programmatically (hidden most of the time) and set its focus, I suppose i could use some sort of HitTest to determine the window handle of the Frame. Then I could track the WM_KillFocus message Any idea on a better approach? Thank you for your help, Sébastien <http://www.ondemandanalysis.com |
api - tracking LostFocus or Exit event of a combobox
A ComboBox on a UserForm has both an Enter and Exit event. -- Jim Cone San Francisco, USA http://www.realezsites.com/bus/primitivesoftware (Excel Add-ins / Excel Programming) "sebastienm" wrote in message Hi, 1. I am trying to capture the Exit or LostFocus event of a combobox on a UserForm. The Forms controls don't have a handle in vba and, while trying to find the window 's class using Spy+, it seems like the combobox doesn't have a window assicioted with it (unlike the listbox or a frame). Any idea? Am i missing something? 2. If not direct way to (1) To bypass the 'lack' of window for the combobox, i have placed the combobox into a frame wrapped around it. However, i don't know how to get the handle of the Frame. In spy++, the inside of the userform, the listbox, or the frame have the same class (F3 Server 07600000). Since I always show the frame programmatically (hidden most of the time) and set its focus, I suppose i could use some sort of HitTest to determine the window handle of the Frame. Then I could track the WM_KillFocus message Any idea on a better approach? Thank you for your help, Sébastien <http://www.ondemandanalysis.com |
api - tracking LostFocus or Exit event of a combobox
I should have explained better, sorry.
I don't have access to the Combobox directly from the Userform; instead I access it through a variable of a Class. When used through a variable in a class, the combobox variable doesn't ?inherit? the Exit and Enter events (while it supports _Change...), because (i believe) it comes from the generic Control object. Class1 -------- Private WithEvents mCombobox as msforms.combobox Public Property Let Combobox(pCombobox as msforms.combobox) set mCombobox=pCombobox End Property In a class module, while you can use some events like mCombobox_Change event, some others cannot be used, like mCombobox_Exit. I think it's because i comes from the COntrol object in fact. I tried the following: Class1 -------- Private WithEvents mCombobox as msforms.combobox Private WithEvents mCtl as msforms.control Public Property Let Combobox(pCombobox as msforms.combobox) set mCombobox=pCombobox set mctl = pCombobox End Property but then it breaks at run-time on Set mCtl = pCombobox with err 459 - Object or Class does not support the set of events. Any idea? -- Regards, Sébastien <http://www.ondemandanalysis.com |
api - tracking LostFocus or Exit event of a combobox
I should have explained better, sorry.
I don't have access to the Combobox directly from the Userform; instead I access it through a variable of a Class. When used through a variable in a class, the combobox variable doesn't ?inherit? the Exit and Enter events (while it supports _Change...), because (i believe) it comes from the generic Control object. Class1 -------- Private WithEvents mCombobox as msforms.combobox Public Property Let Combobox(pCombobox as msforms.combobox) set mCombobox=pCombobox End Property In a class module, while you can use some events like mCombobox_Change event, some others cannot be used, like mCombobox_Exit. I think it's because i comes from the COntrol object in fact. I tried the following: Class1 -------- Private WithEvents mCombobox as msforms.combobox Private WithEvents mCtl as msforms.control Public Property Let Combobox(pCombobox as msforms.combobox) set mCombobox=pCombobox set mctl = pCombobox End Property but then it breaks at run-time on Set mCtl = pCombobox with err 459 - "Object or Class does not support the set of events." Any idea? -- Regards, Sébastien <http://www.ondemandanalysis.com -- Regards, Sébastien <http://www.ondemandanalysis.com "Jim Cone" wrote: A ComboBox on a UserForm has both an Enter and Exit event. -- Jim Cone San Francisco, USA http://www.realezsites.com/bus/primitivesoftware (Excel Add-ins / Excel Programming) "sebastienm" wrote in message Hi, 1. I am trying to capture the Exit or LostFocus event of a combobox on a UserForm. The Forms controls don't have a handle in vba and, while trying to find the window 's class using Spy+, it seems like the combobox doesn't have a window assicioted with it (unlike the listbox or a frame). Any idea? Am i missing something? 2. If not direct way to (1) To bypass the 'lack' of window for the combobox, i have placed the combobox into a frame wrapped around it. However, i don't know how to get the handle of the Frame. In spy++, the inside of the userform, the listbox, or the frame have the same class (F3 Server 07600000). Since I always show the frame programmatically (hidden most of the time) and set its focus, I suppose i could use some sort of HitTest to determine the window handle of the Frame. Then I could track the WM_KillFocus message Any idea on a better approach? Thank you for your help, Sébastien <http://www.ondemandanalysis.com |
api - tracking LostFocus or Exit event of a combobox
Sébastien, Sorry no ideas at this time. Jim Cone "sebastienm" wrote in message I don't have access to the Combobox directly from the Userform; instead I access it through a variable of a Class. When used through a variable in a class, the combobox variable doesn't ?inherit? the Exit and Enter events (while it supports _Change...), because (i believe) it comes from the generic Control object. Class1 -------- Private WithEvents mCombobox as msforms.combobox Public Property Let Combobox(pCombobox as msforms.combobox) set mCombobox=pCombobox End Property In a class module, while you can use some events like mCombobox_Change event, some others cannot be used, like mCombobox_Exit. I think it's because i comes from the COntrol object in fact. I tried the following: Class1 -------- Private WithEvents mCombobox as msforms.combobox Private WithEvents mCtl as msforms.control Public Property Let Combobox(pCombobox as msforms.combobox) set mCombobox=pCombobox set mctl = pCombobox End Property but then it breaks at run-time on Set mCtl = pCombobox with err 459 - "Object or Class does not support the set of events." Any idea? -- Regards, Sébastien <http://www.ondemandanalysis.com "Jim Cone" wrote: A ComboBox on a UserForm has both an Enter and Exit event. -- Jim Cone San Francisco, USA http://www.realezsites.com/bus/primitivesoftware (Excel Add-ins / Excel Programming) "sebastienm" wrote in message Hi, 1. I am trying to capture the Exit or LostFocus event of a combobox on a UserForm. The Forms controls don't have a handle in vba and, while trying to find the window 's class using Spy+, it seems like the combobox doesn't have a window assicioted with it (unlike the listbox or a frame). Any idea? Am i missing something? 2. If not direct way to (1) To bypass the 'lack' of window for the combobox, i have placed the combobox into a frame wrapped around it. However, i don't know how to get the handle of the Frame. In spy++, the inside of the userform, the listbox, or the frame have the same class (F3 Server 07600000). Since I always show the frame programmatically (hidden most of the time) and set its focus, I suppose i could use some sort of HitTest to determine the window handle of the Frame. Then I could track the WM_KillFocus message Any idea on a better approach? Thank you for your help, Sébastien <http://www.ondemandanalysis.com |
All times are GMT +1. The time now is 01:20 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com