Problem with More than One VB 3-D Group Push Button Depressed

ID Number: Q83760

1.00

WINDOWS

buglist1.00

Summary:

The group push button that is part of the THREED.VBX custom control

may at times allow more than one button down at once. This is a

painting problem with the control. The internal state of the button is

correctly maintained.

Microsoft has confirmed this to be a problem with the 3-D Group Push

Button custom control supplied with Microsoft Professional Toolkit for

Microsoft Visual Basic programming system version 1.0 for Windows. We

are researching this problem and will post new information here as it

becomes available.

More Information:

The multistate 3-D Group Push Button is designed for creating grouped

push buttons such as the standard Visual Basic option and check boxes.

You can specify a group of push buttons so that only one button can be

in the depressed mode at once. However, there are instances where more

than one button can be in the depressed state at once.

Steps to Reproduce Problem

--------------------------

1. Run Visual Basic, or from the File menu, choose New Project (ALT,

F, N) if Visual Basic is already running. Form1 is created by

default.

2. From the File menu, choose Add File. In the Files box, select the

THREED.VBX custom control file. The 3-D tools appear in the

Toolbox.

3. Place the following controls on Form1:

Control Control Name Properties

------- ------------ ----------

Group Push GroupPush3D1 Index = 0 'Create a

Group Push GroupPush3D1 Index = 1 'control array

Group Push GroupPush3D1 Index = 2 'with six elements.

Group Push GroupPush3D1 Index = 3

Group Push GroupPush3D1 Index = 4

Group Push GroupPush3D1 Index = 5

Label Label1 Index = 0 'Create a

Label Label1 Index = 1 'control array

Label Label1 Index = 2 'with six elements.

Label Label1 Index = 3

Label Label1 Index = 4

Label Label1 Index = 5

4. Add the following code to your program. (Note that some of the

following lines of code that are displayed on two lines should

actually be one line.)

Sub Form_Load ()

'* This will set the controls on the form in a convenient manner.

Show

For i = 0 To 2

GroupPush3D1(i).Move Offset, 0, 500, 500

Offset = GroupPush3D1(i).Left + 'This line and

GroupPush3D1(i).Width 'this line should be one line.

Next i

LowOffset = GroupPush3D1(0).Top + 'This line and

GroupPush3D1(0).Height 'this line should be one line.

Offset = 0

For i = 3 To 5

GroupPush3D1(i).Move Offset, LowOffset, 500, 500

Offset = GroupPush3D1(i).Left + 'This line and

GroupPush3D1(i).Width 'this line should be one line.

Next i

Offset = 0

For i = 0 To 5

Label1(i).Move 2000, Offset, 1000, 200

Offset = Label1(i).Top + Label1(i).Height

Next i

End Sub

Sub GroupPush3D1_Click (Index As Integer, Value As

Integer)

'* Update the caption of the labels to reflect the

'* value of the GroupPush3D1 programmatically.

For i = 0 To 5

Label1(i).Caption = "Button" + Str$(i) +

Str$(GroupPush3D1(i).Value)

Next i

End Sub

5. Press F5 to run the program. Quickly click between the six buttons

many times.

This will lead to a state where more than one button can be in the

depressed mode. The 3-D Group Push Buttons should not allow this.

Although more than one button can be in the depressed state at once,

the button's internal Value property is always correct.

Additional reference words: 1.00