15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Альтернатива для закладок (Tabs)

У Вас так много закладок, что они не помещаются? Попробуйте воспользоваться list box в связке с массивом контролов картинок. List box будет содержать ячейки, которые будет выбирать пользователь; элемент управления картинок будет контейнером для различных подразделов. Для демонстрации создайте форму с list box (List1) слева и Picture box (Picture1) справа. Установите свойство Index у Picture1 в ноль. Затем поместите следующий код в 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 = 0

End Sub
В VB 4.0, можно использовать следующий синтаксис:

With Picture1(x)
	.AutoRedraw = True
	.Visible = True
	.Left = Picture1(0).Left
	.Top = Picture1(0).Top
	.Width = Picture1(0).Width
	.Height = Picture1(0).Height
End With

Обратите внимание, что Вам не удастся динамически создавать picture контролы. Создавать их необходимо на стадии дизайна приложения и заполнять их необходимыми элементами управления.

Поместите следующую строку в List1_Click:

Picture1(List1.ListIndex).ZOrder

Когда пользователь кликает на пункт в списке, то будет показан соответствующий элемент управления картинками (picture). Это и обеспечивает функциональность схожую с закладками не требуя каких-либо VBX или дополнительной памяти!