FIX: SPACE BAR+ARROW KEY Causes GPF When Unloading Form (160161)



The information in this article applies to:

  • Microsoft Visual Basic Standard Edition, 32-bit, for Windows 4.0
  • Microsoft Visual Basic Professional Edition, 16-bit, for Windows 4.0
  • Microsoft Visual Basic Professional Edition, 32-bit, for Windows 4.0
  • Microsoft Visual Basic Enterprise Edition, 16-bit, for Windows 4.0
  • Microsoft Visual Basic Enterprise Edition, 32-bit, for Windows 4.0

This article was previously published under Q160161

SYMPTOMS

With a form that contains at least two controls that are capable of receiving focus, if the SPACE BAR+ARROW KEY combination is pressed while the focus is on the control whose click event contains the code "Unload Me," a General Protection Fault (GPF) will occur.

RESOLUTION

Instead of unloading the form immediately in the click event of a control, place a Timer control on the form and use it to defer this action for one millisecond using the following code:
   Private Sub Command1_Click()
       '''Unload Me
       Timer1.Interval = 1
   End Sub

   Private Sub Timer1_Timer()
       Unload Me
   End Sub
				

STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This bug has been fixed in Visual Basic 6.0.

MORE INFORMATION

Steps to Reproduce Problem

  1. Start a new project in Visual Basic. Form1 is created by default.
  2. Place two CommandButtons, Command1 and Command2, on Form1.
  3. Place the following code in the Command1_Click event:
       Private Sub Command1_Click()
           Unload Me
       End Sub
    						
  4. Run the project by pressing the F5 key.
  5. With the focus on Command1, press the SPACE BAR+ARROW KEY combination and note that a GFP occurs.

Modification Type:MajorLast Reviewed:6/24/2004
Keywords:kbbug kbfix KB160161