设置列表顶部的项和列表中具有焦点的项
以下示例标识 ListBox 中显示的顶部项,以及 ListBox 中具有焦点的 项。 此示例使用 TopIndex 属性标识显示在 ListBox 顶部的项,使用 ListIndex 属性标识具有焦点的项。 用户在 ListBox 中选择项目。 当用户选择某个项或单击 CommandButton 时,将更新 TopIndex 和 ListIndex 的显示值。
若要使用本示例,请将此示例代码复制到窗体的"脚本编辑器"中。 若要运行本代码,需要打开该窗体,以便激活 Open 事件。 确保该窗体包含:
一个名为"Label1"的 Label 。
一个名为"TextBox1"的 TextBox 。
一个名为"Label2"的 Label 。
一个名为"TextBox2"的 TextBox 。
一个名为"CommandButton1"的 CommandButton 。
一个名为"ListBox1"的 ListBox ,绑定到"主题"字段。
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 支持和反馈,获取有关如何接收支持和提供反馈的指南。