使用 HScrollBar 和 VScrollBar 控件
水平、垂直滚动条控件不同于 Windows 中内部的滚动条或 Visual Basic 中那些附加在文本框、列表框、组合框或 MDI 窗体上的滚动条。无论何时,只要应用程序或控件所包含的信息超过当前窗口(或者在 ScrollBars 属性被设置成 True 时的文本框和 MDI 窗体)所能显示的信息,那些滚动条就会自动出现。在较早的 Visual Basic 版本中,通常用滚动条作为输入设备。但目前的 Windows 界面指南则建议用滑块取代滚动条作为输入设备。Visual Basic 专业版和企业版都包括 Windows 95 的滑块控件。滚动条在 Visual Basic 中仍然有价值,因为它为那些不能自动支持滚动的应用程序和控件提供了滚动功能。关于使用滚动条的信息,请参阅“Scroll Bar 控件方案:创建可滚动的图形视口”。Scroll Bar 控件如何工作
滚动条控件用 Scroll 和 Change 事件监视滚动框(有时用拇指替代)沿滚动条的移动。事件 描述
Change 在滚动框移动后发生。
Scroll 在移动滚动框时发生。在单击滚动箭头或滚动条时不发生。
可用 Scroll 事件访问滚动条被拖动后的数值。在释放滚动框或单击滚动条或滚动箭头时,Change 事件就会发生。Value 属性
Value 属性(缺省值为 0)是一个整数,它对应于滚动框在滚动条中的位置。当滚动框位置在最小值时,它将移动到滚动条的最左端位置(水平滚动条)或顶端位置(垂直滚动条)。当滚动框在最大值时,它将移动到滚动条的最右端或底端位置。同样,滚动框取中间数值时将位于滚动条的中间位置。除了可用鼠标单击改变滚动条数值外,也可将滚动框沿滚动条拖动到任意位置。结果取决于滚动框的位置,但总是在用户所设置的 Min 和 Max 属性之间。注意 如果希望滚动条显示的信息从较大数值向较小数值变化,可将 Min 设置成大于 Max 的值。LargeChange 和 SmallChange 属性
为了指定滚动条中的移动量,对于单击滚动条的情况可用 LargeChange 属性,对于单击滚动条两端箭头的情况可用 SmallChange 属性。滚动条的 Value 属性增加或减少的长度是由 LargeChange 和 SmallChange 属性设置的数值。要设置滚动框在运行时的位置,可将 Value 属性设为 0 到 32,767 中的某个数值(包括 0 和 32,767)。
水平、垂直滚动条控件不同于 Windows 中内部的滚动条或 Visual Basic 中那些附加在文本框、列表框、组合框或 MDI 窗体上的滚动条。无论何时,只要应用程序或控件所包含的信息超过当前窗口(或者在 ScrollBars 属性被设置成 True 时的文本框和 MDI 窗体)所能显示的信息,那些滚动条就会自动出现。在较早的 Visual Basic 版本中,通常用滚动条作为输入设备。但目前的 Windows 界面指南则建议用滑块取代滚动条作为输入设备。Visual Basic 专业版和企业版都包括 Windows 95 的滑块控件。滚动条在 Visual Basic 中仍然有价值,因为它为那些不能自动支持滚动的应用程序和控件提供了滚动功能。关于使用滚动条的信息,请参阅“Scroll Bar 控件方案:创建可滚动的图形视口”。Scroll Bar 控件如何工作
滚动条控件用 Scroll 和 Change 事件监视滚动框(有时用拇指替代)沿滚动条的移动。事件 描述
Change 在滚动框移动后发生。
Scroll 在移动滚动框时发生。在单击滚动箭头或滚动条时不发生。
可用 Scroll 事件访问滚动条被拖动后的数值。在释放滚动框或单击滚动条或滚动箭头时,Change 事件就会发生。Value 属性
Value 属性(缺省值为 0)是一个整数,它对应于滚动框在滚动条中的位置。当滚动框位置在最小值时,它将移动到滚动条的最左端位置(水平滚动条)或顶端位置(垂直滚动条)。当滚动框在最大值时,它将移动到滚动条的最右端或底端位置。同样,滚动框取中间数值时将位于滚动条的中间位置。除了可用鼠标单击改变滚动条数值外,也可将滚动框沿滚动条拖动到任意位置。结果取决于滚动框的位置,但总是在用户所设置的 Min 和 Max 属性之间。注意 如果希望滚动条显示的信息从较大数值向较小数值变化,可将 Min 设置成大于 Max 的值。LargeChange 和 SmallChange 属性
为了指定滚动条中的移动量,对于单击滚动条的情况可用 LargeChange 属性,对于单击滚动条两端箭头的情况可用 SmallChange 属性。滚动条的 Value 属性增加或减少的长度是由 LargeChange 和 SmallChange 属性设置的数值。要设置滚动框在运行时的位置,可将 Value 属性设为 0 到 32,767 中的某个数值(包括 0 和 32,767)。
解决方案 »
- VB6.0 如何写代码关闭windows 7 系统?
- 同样是判断“表中有记录”的语句,请问这四句有什么区别没?
- Tab控件改变文字的方向
- 不用 DataEnvironment1 可否实现报表的分组
- 帮帮忙了!!!~~~~~~~~~~~
- 如要获得picture或label中某一个点的颜色值是否应使用GetPixel函数,如何实现??
- 没事给分而已
- 用打包展开的方式做了一个安装程序?但在别的机子上安装后,运行始终显示一个类未注册的问题?请高手指教!小弟急用,解决不了:(
- MID主窗体里可否将某个子窗体永久性置于最底层和最顶层?
- 关于MSFlexGrid 的排序
- 一个vb终端程序,欢迎试用
- NT在装Access,做为后台数据库,前台用VB通过ODBC来访问,请问能否实现?该怎样做?
ListBox 控件显示项目列表,用户可从中选择一个或多个项目。图7.32 ListBox 控件列表框为用户提供了选项的列表。虽然也可设置多列列表,但在缺省时将在单列列表中垂直显示选项。如果项目数目超过列表框可显示的数目,控件上将自动出现滚动条。这时用户可在列表中上、下、左、右滚动。图 7.36 所示为一个单列列表框。图7.33 单列列表框数据绑定特性
Visual Basic 包含 ListBox 控件的标准版本 (ListBox) 和数据绑定版本 (DBList) 。虽然两种版本的控件都能显示、编辑和更新大多数标准类型数据库的信息,但是 DataList 提供了更高级的数据访问功能。DataList 控件还支持一套与标准 ListBox 控件不同的属性和方法。详细信息 请参阅“使用DataCombo 和 DataList 控件”以获得有关 Listbox 控件的数据绑定版本的详细信息。Click 和 Double-Click 事件对于列表框事件,特别是当列表框作为对话框的一部分出现时,建议添加一个命令按钮,并把该按钮同列表框并用。按钮的 Click 事件过程应该使用列表框的选项执行适于应用程序的操作。双击列表中的项目与先选定项目然后单击命令按钮,这两者应该具有相同的效果。为此,应在 ListBox 控件的 DblClick 过程中调用命令按钮的 Click 过程:Private Sub List1_DblClick ()
Command1_Click
End Sub也可将命令按钮的 Value 属性值设置为 True,这就将自动调用事件过程:Private Sub List1_DblClick ()
Command1.Value = True
End Sub这将为使用鼠标的用户提供快捷方式,同时也没有妨碍使用键盘的用户执行同样的操作。注意,没有与 DblClick 事件等价的键盘命令。向列表添加项目
为了向列表框中添加项目,应使用 AddItem 方法,其语法如下:box.AddItem item[, index]参数 描述
box 列表框的名称。
item 添加到列表中的字符串表达式。若 item 是文字常数,则用引号将它括起来。
index 指定在列表中插入新项目的位置。index 为 0 表示第一个位置。若省略 index,则将项目插入在末尾(或按排序次序插入在适当的位置)。
通常在 Form_Load 事件过程中添加列表项目,但也可在任何时候使用 AddItem 方法添加项目,于是可动态(响应用户的操作)添加项目。下列代码将 "Germany"、"India"、"France" 和 "USA" 添加到名为 List1 的列表框中:Private Sub Form_Load ()
List1.AddItem "Germany"
List1.AddItem "India"
List1.AddItem "France"
List1.AddItem "USA"
End Sub只要在运行时加载窗体就会出现如图 7.34 所示的列表。图 7.34 "Countries" 列表框在指定位置添加项目
为了在指定位置添加项目,应对新项目指定索引值。例如,下行代码将 "Japan" 插入到第一个位置并把其它项目向下调整:List1.AddItem "Japan", 0注意,是 0 而不是 1 指定列表中的第一个位置(见图 7.38)。图 7.35 向列表添加项目设计时添加项目
通过设置 ListBox 控件“属性”窗口的 List 属性还可在设计时向列表添加项目。在选定了 List 属性选项并单击向下箭头时,可输入列表项目并按 CTRL+ENTER 组合键换行。只能在列表末端添加项目。所以,如果要将列表按字母顺序排序,则应将 Sorted 属性设置成 True。关于详细的信息,请参阅下面“排序列表”。排序列表
可以指定要按字母顺序添加到列表中的项目,为此将 Sorted 属性设置为 True 并省略索引。排序时不区分大小写;因此单词 "japan" 和 "Japan" 将被同等对待。Sorted 属性设置为 True 后,使用带有 index 参数的 AddItem 方法可能会导致不可预料的非排序结果。从列表中删除项目
可用 RemoveItem 方法从列表框中删除项目。RemoveItem 有一参数 index,它指定删除的项目:box.RemoveItem indexbox 和 index 参数与 AddItem 中的参数相同。例如要删除列表中的第一个项目,可添加下行代码:List1.RemoveItem 0要删除连结版或标准版的列表、组合框中的所有项目,应使用 Clear 方法:List1.Clear通过 Text 属性获取列表内容
通常,获取当前选定项目值的最简单方法是使用 Text 属性。Text 属性总是对应用户在运行时选定的列表项目。例如,下列代码在用户从列表框中选定 "Canada" 时显示有关加拿大人口的信息:Private Sub List1_Click ()
If List1.Text = "Canada" Then
Text1.Text = "Canada has 24 million people."
End If
End SubText 属性包含当前在 List1 列表框中选定的项目。代码检查是否选定了 "Canada",若已选定,则在 Text 框中显示信息。用 List 属性访问列表项目
可用 List 属性访问列表的全部项目。此属性包含一个数组,列表的每个项目都是数组的元素。每个项目以字符串形式表示。引用列表的项目时应使用如下语法:box.List(index)box 参数是列表框的引用,index 是项目的位置。顶端项目的索引为 0,接下来的项目索引为 1,依此类推。例如,下列语句在一个文本框中显示列表的第三个项目(index = 2):Text1.Text = List1.List(2)用 ListIndex 属性判断位置
如果要了解列表中已选定项目的位置,则用 ListIndex 属性。此属性只在运行时可用,它设置或返回控件中当前选定项目的索引。设置列表框的 ListIndex 属性也将触发控件的 Click 事件。如果选定第一个(顶端)项目,则属性的值为 0,如果选定下一个项目,则属性的值为 1,依此类推。若未选定项目,则 ListIndex 值为 –1。注意 NewIndex 属性可用来跟踪添加到列表的最后一个项目的索引。在向排序列表插入项目时,这一点十分有用。使用 ListCount 属性返回项目数
为了返回列表框中项目的数目,应使用 ListCount 属性。例如,下列语句用 ListCount 属性判断列表框中的项目数:Text1.Text = "You have " & List1.ListCount & " _
entries listed"创建多列和多选项列表框
可用 Columns 属性指定列表框中的列数目。此属性取值如下:值 描述
0 垂直滚动的单列列表框。
1 水平滚动的单列列表框。
>1 水平滚动的多列列表框。
如有必要,Visual Basic 可自动换行显示列表项目并为列表添加水平滚动条;若列表只填充在单列中则不添加滚动条。Visual Basic 可根据需要自动换列显示。注意,若列表框的项目比列宽度要宽,则会截去文本超出的部分。用户可从列表中选择多个项目。设置 MultiSelect 属性来处理标准列表框中的多项选择,MultiSelect 属性取值如下:值 选项类型 描述
0 无 标准列表框。
1 简单多项选择 单击或按 SPACEBAR 键选定列表中的附加项目,或撤消对附加项目所作的选定。
2 扩充的多项
选择 可用 SHIFT+ 单击或 SHIFT+ 箭头键选定从上一个选定项到当前的选项之间的所有选项。CTRL+ 单击将选定(或撤消选定)列表中的项目。
详细信息 关于 Columns 和 MultiSelect 属性的详细信息,请参阅本章后面的“列表框控件方案 2:创建多列列表框”。
http://www.csdn.net/expert/TopicView.asp?id=383489'下面是 按钮向上下滚动 ListBox 的代码
Option Explicit
Private Sub Command1_Click()
List1.TopIndex = List1.TopIndex + 1
List1.Selected(List1.TopIndex + GetVisibleListCount(List1)) = True
End Sub
Private Sub Form_Load()
Dim i As Long
For i = 0 To 100
List1.AddItem "asdas"
Next i
End Sub
Public Function GetVisibleListCount(ListX As VB.ListBox) As Integer
Dim FormX As VB.Form
Set FormX = ListX.Container
Dim FontX As New stdole.StdFont
FontX.Bold = FormX.Font.Bold
FontX.Charset = FormX.Font.Charset
FontX.Italic = FormX.Font.Italic
FontX.Name = FormX.Font.Name
FontX.Size = FormX.Font.Size
FontX.Underline = FormX.Font.Underline
FontX.Weight = FormX.Font.Weight
Set FormX.Font = ListX.Font
GetVisibleListCount = (ListX.Height \ FormX.TextHeight("X")) - 1
Set FormX.Font = FontX
End Function'=================================
'MSDN:
Private Sub Form_Load ()
Dim I ' 声明变量。
For I = 0 To Screen.FontCount -1 ' 填充列表框用
List1.AddItem Screen.Fonts(I) ' 屏幕字体的名字。
Next I
End SubPrivate Sub Form_Click ()
Dim X ' 声明变量。
X = List1.TopIndex ' 获得当前索引。
List1.TopIndex = List1.TopIndex + 5 ' 复位最上面的项。
If List1.TopIndex = X Then List1.TopIndex = 0
End Sub