Установка элемента в верхней части списка и элемента, который имеет фокус в списке
В следующем примере определяется верхний элемент, отображаемый в элементе ListBox , и элемент с фокусом в ListBox. В этом примере свойство TopIndex используется для идентификации элемента, отображаемого в верхней части ListBox , и свойство ListIndex для идентификации элемента, на котором находится фокус. Пользователь выбирает элемент в ListBox. Отображаемые значения TopIndex и ListIndex обновляются, когда пользователь выбирает элемент или щелкает элемент CommandButton.
Чтобы использовать этот пример, скопируйте пример кода в редактор скриптов формы. Чтобы запустить код, необходимо открыть форму, чтобы активировать событие Open . Убедитесь, что эта форма содержит:
Метка с именем Label1.
Объект TextBox с именем TextBox1.
Элемент Label с именем Label2.
Элемент TextBox с именем TextBox2.
Элемент CommandButton с именем CommandButton1.
Объект ListBox с именем ListBox1, привязанный к полю Subject.
Sub CommandButton1_Click()
Set ListBox1 = Item.GetInspector.ModifiedFormPages("P.2").Controls("ListBox1")
Set TextBox1 = Item.GetInspector.ModifiedFormPages("P.2").Controls("TextBox1")
Set TextBox2 = Item.GetInspector.ModifiedFormPages("P.2").Controls("TextBox2")
ListBox1.TopIndex = ListBox1.ListIndex
TextBox1.Text = ListBox1.TopIndex
TextBox2.Text = ListBox1.ListIndex
End Sub
Sub Item_PropertyChange(byval pname)
if pname = "Subject" then
Set TextBox1 = Item.GetInspector.ModifiedFormPages("P.2").Controls("TextBox1")
Set TextBox2 = Item.GetInspector.ModifiedFormPages("P.2").Controls("TextBox2")
Set ListBox1 = Item.GetInspector.ModifiedFormPages("P.2").Controls("ListBox1")
TextBox1.Text = ListBox1.TopIndex
TextBox2.Text = ListBox1.ListIndex
end if
End Sub
Sub Item_Open()
Set ListBox1 = Item.GetInspector.ModifiedFormPages("P.2").Controls("ListBox1")
Set CommandButton1 = Item.GetInspector.ModifiedFormPages("P.2").Controls("CommandButton1")
Set TextBox1 = Item.GetInspector.ModifiedFormPages("P.2").Controls("TextBox1")
Set TextBox2 = Item.GetInspector.ModifiedFormPages("P.2").Controls("TextBox2")
Set Label1 = Item.GetInspector.ModifiedFormPages("P.2").Controls("Label1")
Set Label2 = Item.GetInspector.ModifiedFormPages("P.2").Controls("Label2")
For i = 0 To 24
ListBox1.AddItem "Choice " & (i + 1)
Next
ListBox1.Height = 66
CommandButton1.Caption = "Move to top of list"
CommandButton1.AutoSize = True
CommandButton1.TakeFocusOnClick = False
Label1.Caption = "Index of top item"
TextBox1.Text = ListBox1.TopIndex
Label2.Caption = "Index of current item"
Label2.AutoSize = True
Label2.WordWrap = False
TextBox2.Text = ListBox1.ListIndex
End Sub
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.