Работа С Программно Созданными Скроллбарами

GWolf

New member
30.10.2008
3
0
#1
Доброго дня, друзья!

Помогите чайнику. Идея проекта такова: Есть UserForm с двумя MultiPage. На первом MultiPage размещены два окна списка: в левое грузим список сотрудников, в правое проводим отбор группы участников. После чего перемещаемся на второй MultiPage. На втором MultiPage программно размещается, по числу участников группы, связка из Control: Label A + ScrollBar + Label B. ScrollBar имеет диапазон от 0 до 100 с шагом = 1. При перемещении движка любого из созданных ScrollBar - ов в соответствующем ему Label B должна отображаться цифра отражающая положение движка. Фуф! Вроде объяснил.
Что сделано: - список заполняется, группа собирается, связки формируются. А вот как разобраться со скролбарами - не знаю!
Задавал вопрос на других форумах - ТИШИНА! Может здесь услышу глас помощи!!! Очень срочно нужно!
 

Вложения

alex77755

Well-known member
15.02.2009
128
0
#2
Ну, во первых: Option Explicit крайне желательное объявление - помогает находить и избегать ошибки


2. в модуле формы
блок объявлений
Код:
Option Explicit
Dim arrSBControl(15) As New SBControl
процедура Private Sub cmb_toProc_Click()
Код:
					Set crsB = .Add("Forms.ScrollBar.1", "skb_" & i + 1, True)
ReDim Preserve arrSBControl(i)
Set arrSBControl(i).Sbox = crsB
класс без изменений - допишешь обработчик сам
Код:
Public WithEvents Sbox As MSForms.ScrollBar

Private Sub Sbox_Change()
MsgBox Sbox.Value, 64, Sbox.Name
Stop
End Sub
 

alex77755

Well-known member
15.02.2009
128
0
#3
процедура Private Sub cmb_toProc_Click()
Код:
					Set crsA = .Add("Forms.Label.1", "lbx_" & i + 1, True)
Set crsC = .Add("Forms.Label.1", "lbx_k" & i + 1, True)

Set crsB = .Add("Forms.ScrollBar.1", "skb_" & i + 1, True)
crsB.Tag = "lbx_k" & i + 1
ReDim Preserve arrSBControl(i)
Set arrSBControl(i).Sbox = crsB
класс
Код:
Public WithEvents Sbox As MSForms.ScrollBar

Private Sub Sbox_Change()
frm_wistawimProcenti.Controls(Sbox.Tag).Caption = Sbox.Value
End Sub
Добавлено: Сорри, ошибочка: Массив объявлять безрамерным ()