A Replacement For Tabs

A Replacement For Tabs

You say you want to use a tab control, but you have so many topics thetabs will be unreadable? Try using a list box in conjunction with a controlarray of picture controls. The list box will contain entries the user canchoose; the picture controls will be containers for the various form subsectionsdesired. To demonstrate this, create a form with a list box (List1) on the leftand a Picture box (Picture1) on the right. Set the Index property of Picture1to zero, making it a control array. Then place this code in Form_Load:

 Private Sub Form_Load()	Dim x As Integer	For x = 0 To 15		List1.AddItem "Picture1(" & x & ")"	If x > 0 Then Load Picture1(x)	Picture(x).AutoRedraw = True		Picture(x).AutoRedraw = True		Picture(x).Visible = True		Picture(x).Left = Picture1(0).Left		Picture(x).Top = Picture1(0).Top		Picture(x).Width = Picture1(0).Width		Picture(x).Height = Picture1(0).Height		Picture1(x).Print "This is picture " & x	Next x	Me.Show: Me.Refresh	List1.ListIndex = 0End SubIn VB 4.0, you could use this syntax:With Picture1(x)	.AutoRedraw = True	.Visible = True	.Left = Picture1(0).Left	.Top = Picture1(0).Top	.Width = Picture1(0).Width	.Height = Picture1(0).HeightEnd With

Note that for a real application you wouldn’t dynamically create picturecontrols. You’d create them at design time and fill them with the controlsyou need. To demonstrate the concept, the example loads the control arrayat Form_Load. Place the following code in List1_Click:


Whenever the user clicks an item in the list, the relevant picture controlwill pop to the top of the stack, becoming visible. This provides tab-likefunctionality without the cost of a VBX or extra memory, and lets you createitems with as many pictures as you want, unfettered by tab width or tabcaption readability!


Share the Post: