KeyDown event fires twice with SSTab - Any work-around?

There is a bug with the SSTab which causes the KeyDown event to fire twice.  I'm using VB 4 and the latest version of the SSTab control for VB 4.  This bug is causing havoc with my program!!  I have a form with a SSTab on it and when the user presses F2, I use the KeyDown event to show a modal dialog.  Because of this bug, the dialog is actually shown twice!

How do I get around this problem?  Note that the event only fires twice when the tabs at the top have the focus.  A way around this problem could be to block the second event; but I am worried about future compatibility.  For example, if a new version of the control is realeased which my end users have installed on their machine which doesn't contain the bug, the work-around could break my program.  

Thanks for your help.
Richard2000Asked:
Who is Participating?
 
jonderConnect With a Mentor Commented:
You can reject this if you want to but the answer is very simple!
I had the same problem you are having about 9 months ago.
The way I fixed the problem was to make a Global Integer & set it to ZERO, then when your user presses F2

the KeyDown_Event would start off:

GlobalInteger = GlobalInteger + 1
If GlobalInteger > 1 Then
    ...'Your Code
    ...
    GlobalInteger = 0  
End If
0
 
MikeP090797Commented:
Set .KeyPreview of the form to True, and process the form_keydown event
0
 
Richard2000Author Commented:
MikeP,

Thanks for your answer.  Unfortunately, I *HAD* been using the KeyDown event of the *FORM* which is where the problem occurs.  It seems that whenever a SSTab is on a form, the KeyDown event of the form will fire twice when a tab on a SSTab has the focus.
0
Introducing Cloud Class® training courses

Tech changes fast. You can learn faster. That’s why we’re bringing professional training courses to Experts Exchange. With a subscription, you can access all the Cloud Class® courses to expand your education, prep for certifications, and get top-notch instructions.

 
MikeP090797Commented:
You can use a global variable, set it to True before .Show 1, and to False after it. Before setting it to true, check if it is already true, and exit if it is. I dont see how this can cause compatibility problem
0
 
Richard2000Author Commented:
MikeP,

I had some problems getting this technique to work.  I have found a work-around myself - simply enter KeyCode = 0 at the end of the form_keydown event.  This ensures the event will only fire once.  Please lock the question and I will give you the points for making some suggestions :-)
0
 
MikeP090797Commented:
Since my suggestions weren't too helpfull, better delete the questions, and get the points back
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.