Microsoft KB Archive/149278

= FIX: TreeView.Visible = False at Design-Time Causes Problems =

Article ID: 149278

Article Last Modified on 6/28/2004

-

APPLIES TO


 * Microsoft Visual Basic 4.0 Standard Edition
 * Microsoft Visual Basic 4.0 Professional Edition
 * Microsoft Visual Basic 4.0 32-Bit Enterprise Edition

-



This article was previously published under Q149278



SYMPTOMS
After setting the Visible property of a TreeView control to False at design time, odd behavior can be exhibited at run time. The reproduction sample at the end of this article shows two examples. This behavior can range from the Nodes.Count property returning incorrect values to all or some nodes not being displayed, and even to GPFs in some cases.



RESOLUTION
The work around for this problem is to not set the Visible property to False at design time. If a TreeView control needs to be invisible when a form is shown, the Visible property should be toggled in code before the form with the TreeView is shown. This can easily be done in the Form_Load event of the TreeView laden form with this line of code: TreeView1.Visible = False



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.



Steps to Reproduce
 Start Visual Basic 4.0. Form1 is created by default. Add a single TreeView control and two command buttons to Form1. Set this property of TreeView1:

Visible: False

  Add this code to Form1: Private Sub Form_Load Dim nodX As Node ' Create a tree. Set nodX = TreeView1.Nodes.Add(,,"r", "Root") Set nodX = TreeView1.Nodes.Add(,,"p", "Parent") End Sub

Private Sub Command1_Click TreeView1.Visible = True Debug.Print TreeView1.Nodes.Count End Sub

Private Sub Command2_Click TreeView1.Nodes.Clear Debug.Print TreeView1.Nodes.Count End Sub  Press F5 or select Start from the Run menu to start the application. Press the first command button--although the count property will say two, no nodes will be visible in the control. To demonstrate another oddity, stop and restart and then press Command2. The Clear method should have removed all nodes, but the Count property still returns 2.</ol>

Additional query words: kbVBp400bug kbVBp600fix kbVBp kbdsd kbDSupport kbControl

Keywords: kbbug kbfix KB149278

-

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

© Microsoft Corporation. All rights reserved.