Re: api - tracking LostFocus or Exit event of a combobox

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance



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"
<sebastienm@xxxxxxxxxxxxxxxxxxxxxxxxx>
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>


.



Relevant Pages

  • Re: New Combobox disabled
    ... By main window, do you mean the Word Application window? ... I meant the UserForm window. ... the UserForm is where the combobox needs to reside... ... And finally, if you want to create a ComboBox and populate it at run-time in a MultiPage, you can use the 'Controls' collection too, of the specified Page. ...
    (microsoft.public.vb.winapi)
  • RE: Data table function - A dropdown list replacement for VLookup.
    ... To do this you would be well served by a UserForm which we will create now. ... This will create a ComboBox control on the form. ... “Typing in the selection box will bring matching choices, ... The above code that we just pasted into the code window will take the data ...
    (microsoft.public.excel.worksheet.functions)
  • Re: Curly Question with a Combobox
    ... listbox and translate that to a index position by multiplying that times the ... "Cognizance" is not in my general day to day vocabulary. ... I have formatted the Combobox to list 42 items. ... The Userform is positioned at the top of the page and Just right of the C ...
    (microsoft.public.excel.programming)
  • RE: Data table function - A dropdown list replacement for VLookup.
    ... To do this you would be well served by a UserForm which we will create now. ... This will create a ComboBox control on the form. ... “Typing in the selection box will bring matching choices, ... Private Sub Clear_Form_Click ...
    (microsoft.public.excel.worksheet.functions)
  • Re: How do I populate my combobox - I know...its been asked.
    ... I think this gets back to the way in which you are calling the userform. ... Set myForm = Nothing ... be initialized and that is when the items are added to the combobox. ... If the macro security level is set to medium, ...
    (microsoft.public.word.newusers)