Thread
:
Focus on combobox
View Single Post
#
5
Posted to microsoft.public.excel.programming
atkscott
external usenet poster
Posts: 2
Focus on combobox
Funning things happen when you get so buried in your code...Thanks
onedaywhen for pointing out the obvious :)
(onedaywhen) wrote in message . com...
Set a flag in the _GotFocus event, reset it in the _LostFocus event.
Then, to determine whether the control has focus, check the value of
the flag.
As an aside, just for interest, this code determines that the user
changed the value, even if they select the same list choice (also:
consider when the user changes the combo using the keyboard):
Option Explicit
Private Enum owComboStateEnum
owComboStateNormal = 1
owComboStateIsDropping = 2
owComboStateDropped = 3
End Enum
Private m_lngComboState As owComboStateEnum
Private Sub ComboBox1_DropButtonClick()
ComboState = owComboStateIsDropping
End Sub
Private Sub ComboBox1_LostFocus()
ComboState = owComboStateNormal
End Sub
Private Sub ComboBox1_MouseUp(ByVal Button As Integer, ByVal Shift As
Integer, ByVal X As Single, ByVal Y As Single)
Select Case ComboState
Case owComboStateIsDropping
ComboState = owComboStateDropped
Case owComboStateDropped
Debug.Print "Success: ComboBox1 will change from '" & _
ComboBox1.Value & "' to unknown."
ComboState = owComboStateNormal
End Select
End Sub
Private Property Let ComboState(ByVal NewValue As owComboStateEnum)
m_lngComboState = NewValue
End Property
Private Property Get ComboState() As owComboStateEnum
ComboState = m_lngComboState
End Property
Scott Harmala wrote in message ...
Tom,
The root of my problem is that when a user clicks on the combobox, focus
is transfered and the gotfocus event is triggered. No problem there. If
then the user clicks on the combobox and selects the same list choice,
NO event is triggered. The control already has focus, focus is
mantained, value hasn't changed so there's no change event and for some
reason no click event is triggered. A code condition that CAN follow
after this condition attemts to unprotect this locked sheet.
The unprotect code fails.
Sheets("Main").Unprotect (Sheets("Data").Range("G3"))
I need to detect this condition and if it exists, temporarily move focus
off it and after the unprotect code block runs, return it.
Thanks,
Scott
*** Sent via Developersdex
http://www.developersdex.com
***
Don't just participate in USENET...get rewarded for it!
Reply With Quote
atkscott
View Public Profile
Find all posts by atkscott