Microsoft KB Archive/95830

= FIX: Stack Fault When Move Makes Combo Box Width Too Small =

Article ID: 95830

Article Last Modified on 12/12/2003

-

APPLIES TO


 * Microsoft Visual Basic 2.0 Standard Edition
 * Microsoft Visual Basic 3.0 Professional Edition
 * Microsoft Visual Basic 2.0 Professional Edition
 * Microsoft Visual Basic 3.0 Professional Edition
 * Microsoft Visual Basic 1.0 Standard Edition

-



This article was previously published under Q95830



SYMPTOMS
A Stack Fault results if a Move method changes the Width property of a combo box containing two to eight items to a small value.

The optional third parameter to the Move method changes the width property of the control to which the method applies. Applying the method to the combo box with a third parameter of less then 240 when the scale mode is set to twips, produces a Stack Fault Application Error halting the execution of your application.



WORKAROUND
Changing the Width property, by using the Move method or by setting the property directly, to a value as small as 240 practically eliminates the functionality of the control. At this width, the combo box is barely wide enough to view the drop-down button. Hence no entries in the combo box are visible to the user.

If want your application to move the control to a position where the user can not view the control at that instant, use one of these techniques:


 * 1) Set the Visible property of the combo box to False.
 * 2) Set the Top and Left properties of the combo box to position the control outside the visible region of the Form.



STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This problem has been corrected in Visual Basic version 4.0.



MORE INFORMATION
The Application Error dialog box indicates that Visual Basic caused the Stack Fault in USER.EXE. However the address differs depending on the version of Visual Basic. In version 2.00, the address is 0007:0CA3. In version 1.00, the address is 0001:707A.

Steps to Reproduce Problem
 Start Visual Basic or from the File menu, choose New Project (ALT, F, N) if Visual Basic is already running. Form1 is created by default. Add a combo box (Combo1) to Form1.  Place the following code in the Form_Click event procedure: Sub Form_Click combo1.AddItem &quot;Item 1&quot; combo1.AddItem &quot;Item 2&quot; ' Add two items to combo1 combo1.Move 0, 0, 240   ' New position = (0,0);Width = 240 End Sub  From the Run menu, choose Start (ALT, R, S) to run the program. Using the mouse, click Form1. At this point, the combo box moves to the upper-left corner of Form1 and its width changes to 240 twips (The default ScaleMode). Using the mouse, click Form1 again. An Application Error dialog appears stating the following:

VB caused a Stack Fault in module USER.EXE at 0007:0CA3

Running Visual Basic version 1.00 displays a similar message with an address of 0001:707A.</li></ol>

Additional query words: buglist1.00 buglist2.00 buglist3.00 fixlist4.00 2.00 3.00

Keywords: kbbug kbfix kbenv KB95830

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.