VB第6章 数组
- 格式:doc
- 大小:192.50 KB
- 文档页数:18
vb6 数组维数-回复VB6 数组的维数在VB6中,数组是一种存储多个相同类型的元素的数据结构。
数组的维数指的是数组中的维度数,即数组元素的分布情况。
VB6中的数组可以是一维,二维,多维甚至是动态数组。
在本文中,将一步一步回答关于VB6数组维数的问题,以帮助读者了解并使用VB6数组。
第一步:了解一维数组一维数组是VB6中最简单的数组形式。
它由一列连续的元素组成,每个元素可以通过数组名和索引来访问。
在VB6中,一维数组的索引从0开始,表示第一个元素,依次递增。
下面是一个示例的一维数组声明和初始化:Dim myArray(4) As Integer这样的声明创建了一个包含5个整数元素的一维数组。
访问数组中的元素可以使用索引值:myArray(0) = 10myArray(1) = 20这些语句将分别向数组的第一个和第二个元素赋值。
第二步:应用二维数组在VB6中,可以使用二维数组来表示表格、矩阵、棋盘等具有二维结构的数据。
二维数组可以通过行和列两个索引来访问其元素。
下面是一个示例的二维数组声明和初始化:Dim myArray(2, 3) As Integer这样的声明创建了一个包含3行4列的整数二维数组。
访问数组中的元素可以使用两个索引值:myArray(0, 0) = 10myArray(1, 2) = 20第一个语句将第一行第一列的元素赋值为10,第二个语句将第二行第三列的元素赋值为20。
第三步:理解多维数组在VB6中,还可以创建多维数组,用于表示更高维度的数据结构。
多维数组有多个索引,每个索引对应一个维度。
下面是一个示例的三维数组声明和初始化:Dim myArray(2, 3, 4) As Integer这样的声明创建了一个包含3个平面,每个平面有3行4列的整数三维数组。
访问数组中的元素可以使用三个索引值:myArray(0, 1, 2) = 10myArray(2, 2, 3) = 20第一个语句将第一个平面第二行第三列的元素赋值为10,第二个语句将第三个平面第三行第四列的元素赋值为20。
vb中数组的定义VB中数组的定义在VB中,数组是一种特殊的数据结构,它可以存储多个相同类型的元素。
数组在编程中非常常见,可以用于存储和处理大量的数据。
本文将详细介绍VB中数组的定义及相关知识。
1. 数组的定义在VB中,可以使用Dim语句来定义一个数组。
语法如下:Dim arrayName(index) As dataType其中,arrayName是数组的名称,index是数组的索引(从0开始),dataType是数组中元素的数据类型。
例如,我们可以定义一个包含5个整数的数组:Dim numbers(4) As Integer2. 数组的初始化在定义数组后,我们可以对数组进行初始化。
有两种常用的方法来初始化数组:(1) 使用赋值语句逐个为数组元素赋值。
例如:numbers(0) = 1numbers(1) = 2numbers(2) = 3numbers(3) = 4numbers(4) = 5(2) 使用数组初始化列表来初始化数组。
例如:Dim numbers() As Integer = {1, 2, 3, 4, 5}3. 数组的访问可以使用数组的索引来访问数组中的元素。
索引从0开始,通过数组名称和索引组合使用来访问数组元素。
例如,要访问数组numbers中的第一个元素,可以使用以下语句:Console.WriteLine(numbers(0))4. 数组的长度可以使用数组的Length属性来获得数组的长度。
例如,要获取数组numbers的长度,可以使用以下语句:Console.WriteLine(numbers.Length)5. 多维数组在VB中,还可以定义多维数组。
多维数组是一个表格,可以有多个行和列。
以下是一个二维数组的示例:Dim matrix(2, 2) As Integermatrix(0, 0) = 1matrix(0, 1) = 2matrix(1, 0) = 3matrix(1, 1) = 46. 动态数组除了静态数组,VB还支持动态数组。
第一章Visual Basic介绍第二章用户界面设计第三章编程的基础(含变量,常量,条件语句,循环语句,自定义变量,自定义过程,对象和类等基础)第四章Windows 95的新控件Visual Basic的输入输出第五章Visual Basic的鼠标事件和绘图第六章Visual Basic的数据库、报表、预览、打印第七章从文件中存取资料第八章发行应用程序第九章使用Windows API和用Visual Basic建立自己的屏幕保护程序第十章创建ActiveX控件第十一章ActiveX文档第十二章用对象链接与嵌入(OLE)扩展Visual Basic第十三章使用资源文件第十四章用Visual Basic建立ActiveX DLL第十五章用Winsock控件进行Internet通信第十六章Web浏览控件第一章Visual Basic介绍§2 窗体和命令钮介绍一、窗体窗体是Windows的基本组成部分,这也是为什么这个操作系统叫Windows的原因。
它的主要属性除上面介绍的以外,还包括:1,Appearance属性这个属性用来决定控件是否采用三维效果。
2,BorderStyle属性这个属性决定了窗体的边框形式,共有6种属性值。
改变窗体的BordrStyle 属性后,窗体在屏幕上没有变化,它只在运行时才变为你所要求的样子。
3,ControlBox属性程序员用来决定采用不采用控制框的属性,仅在程序运行时才有效。
4,Font属性程序员可以改变该窗体上显示信息的字体,它控制着直接在窗体上打印的文本显示。
5,Icon属性这个属性是用户经常要使用的一种属性。
当用户的应用程序在工具条上最小化或在Windows桌面上变为一个独立应用程序时,该属性决定将采用何种图标,窗体控制框里的图标也由它决定。
为自己的窗体设置该属性时,要控制住自己挑三拣四的冲动。
6,Visible属性该属性决定窗体是否可见。
错误地改变其值是很危险的,窗体会从眼前消失,这种莫名其妙的事情会使用户惊惶失措,所以肩负重任的程序员一定要慎重哟!7,WindowState属性指定窗体在运行时的三种状态:正常、最小化、最大化。
VB6 数据结构1. 引言在计算机科学中,数据结构是指组织和存储数据的方式。
数据结构能够有效地管理数据,提高程序的运行效率和性能。
VB6(Visual Basic 6)是一种面向对象的编程语言,它提供了丰富的数据结构来帮助开发人员处理和操作数据。
本文将介绍VB6中常用的数据结构,包括数组、链表、栈和队列,并对它们的特点和应用进行详细讨论。
2. 数组数组是一种线性数据结构,它由一系列相同类型的元素组成,这些元素被存储在连续的内存空间中。
在VB6中,数组可以是一维或多维的。
数组的大小在声明时确定,并且在程序运行过程中不能改变。
2.1 一维数组一维数组是最简单的数组形式,它由一个索引和一组值组成。
在VB6中,可以使用Dim语句声明和初始化一维数组。
例如:Dim numbers(10) As Integer上述代码创建了一个包含11个整数的一维数组,索引从0到10。
可以通过索引来访问数组中的元素,例如numbers(0)表示数组的第一个元素。
2.2 多维数组多维数组是一种包含多个索引的数组形式。
在VB6中,可以使用Dim语句声明和初始化多维数组。
例如:Dim matrix(3, 3) As Integer上述代码创建了一个4x4的整数矩阵,可以通过两个索引来访问数组中的元素,例如matrix(0, 0)表示矩阵的左上角元素。
2.3 数组的应用数组在VB6中被广泛应用于各种场景,例如存储和处理大量数据、实现排序和搜索算法等。
通过灵活运用数组,可以提高程序的性能和效率。
3. 链表链表是一种非连续的数据结构,它由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针。
在VB6中,可以使用自定义类型和类模块来实现链表。
3.1 单向链表单向链表是最简单的链表形式,它的每个节点只包含一个指向下一个节点的指针。
在VB6中,可以使用自定义类型来定义单向链表的节点。
例如:Type NodeData As IntegerNextNode As NodeEnd Type上述代码定义了一个包含整数数据和指向下一个节点的指针的节点类型。
VB 知识点总结目录1 第一章知识点 (2)2 第二章知识点 (2)3 第三章知识点 (3)4 第四章知识点 (7)5 第五章知识点 (8)6 第六章知识点 (8)7 第七章知识点 (10)8 第八章知识点 (12)(1) VB 的语言特点可视化开辟环境:界面设计所见所得;面向对象程序设计:程序和数据封装作为一个对象,在工具箱里面的都是一个一个的类,比如commandbutton 类,当你把它从工具箱拖出来已经,它就被实例化成为了一个对象,名称叫command1,如果你拖了2 个command,就是2 个不同的对象;事件驱动编程:VB 程序没有明显的入口和出口,都在等待用户或者系统或者代码触发某个事件,然后执行事件对应的任务(2) VB 的工作模式设计模式,运行模式,中断模式;程序在运行模式是没有办法修改代码和设计界面窗口的。
(3) VB 的文件类型窗体文件frm;程序模块文件bas;类模块文件cls;工程文件vbp;工程组文件vbg;资源文件res;保存工程的时候应该同时保存工程文件vbp 和窗体文件frm。
(4) VB 的窗口任何的窗口被关闭了找不到了,都应该在视图菜单下面来寻觅,工具箱窗口,代码窗口,窗体布局窗口,即将窗口(可以在中断模式下查询程序运行对象值,ctrl+G 打开即将窗口)2 第二章知识点(1) 面向对象的基本概念类:具有类似属性和方法的对象的抽象,比如大学;对象:类实例化就成为一个对象,每一个对象都具有自己的属性和方法,比如西南财经大学天府学院。
属性:对象的静态特征,最重要的属性是name,在VB里面对象的name 是不能省略的,而且在程序运行的过程中是不能修改的;事件:人或者系统对对象的作用,对象是被动者,比如load,unload,timer;click 等;方法:对象发出的行为,对手是主动者,比如move,show,hide 等。
(2) VB 的开辟流程第一步分析后画流程图第二步界面设计第三步编写代码第四步测试运行(1) VB 书写代码的格式今 VB 代码中不区分字母的大小写。
vb6 数组维数在VB6中,数组是一种用来存储和处理数据的容器,它可以在程序中起到重要作用。
了解数组的维数对于有效地使用数组至关重要。
本文将介绍VB6中数组的维数,以及如何创建和操作多维数组。
1.数组的定义和作用数组是一种用来存储一组相同类型数据的数据结构。
在VB6中,数组可以存储任何类型的数据,如整数、字符、布尔值等。
数组的作用是在程序中简化数据的存储和处理,使得程序可以更高效地操作数据。
2.VB6中数组的维数在VB6中,数组的维数指的是数组的大小或容量。
数组可以是一维的,也可以是多维的。
一维数组只有一个维度,类似于一个线性的列表。
多维数组则有多个维度,可以看作是一个矩阵。
例如,一个2x3的矩阵就是一个二维数组,它有2个维度,每个维度有3个元素。
3.如何在VB6中创建和操作多维数组要在VB6中创建多维数组,可以使用以下语法:```vbDim arrayName(dim1, dim2, ...) As DataType```例如,创建一个2x3的整数矩阵:```vbDim arr(2, 3) As Integer```要操作多维数组,可以使用索引来访问和修改数组元素。
数组的索引从0开始,可以使用方括号[]包围。
以下是一个示例:```vbSub Example()Dim arr(2, 3) As Integerarr(0, 0) = 1 " 设置第一个矩阵元素为1Console.WriteLine("第一个矩阵元素:" & arr(0, 0))" 省略其他代码End Sub```4.实例:使用多维数组存储和处理数据以下是一个使用多维数组存储和处理数据的示例:```vbSub ProcessData()Dim arr(2, 3) As Integer" 初始化数组arr(0, 0) = 1arr(0, 1) = 2arr(0, 2) = 3arr(1, 0) = 4arr(1, 1) = 5arr(1, 2) = 6" 显示数组内容For i As Integer = 0 To 1For j As Integer = 0 To 2Console.Write(arr(i, j).ToString() " ") NextConsole.WriteLine()Next" 对数组进行操作Dim temp As Integertemp = arr(0, 1)arr(0, 1) = arr(1, 1)arr(1, 1) = temp" 显示更新后的数组内容For i As Integer = 0 To 1For j As Integer = 0 To 2Console.Write(arr(i, j).ToString() " ") NextConsole.WriteLine()NextEnd Sub```5.总结与建议在VB6中,多维数组是一种强大的数据结构,可以用于存储和处理大量数据。
VB第6章《菜单和工具栏设计》总结一、菜单控件(Menu):1、功能:用于显示应用程序的自定义菜单。
2、组成:命令、子菜单、分隔符条。
3、创建:“工具”菜单——“菜单编辑器”4、常用属性:(1)Caption:菜单项标题对应菜单编辑器中“标题”文本框。
访问键字母前加“&”符号快速选中:顶级菜单:Alt+字母键子菜单:单击字母键(2)Checked:显示复选标记。
对应菜单编辑器中“复选”复选框。
(3)Enabled:有效性。
对应菜单编辑器中“有效”复选框。
(4)Index:当菜单项组成控件数组时,用于区分数组内的各个菜单控件。
对应菜单编辑器中“索引”文本框。
(5)Name:指定菜单控件的名称。
对应菜单编辑器中“名称”文本框。
(6)Shortcut:指定菜单项的快捷键。
对应菜单编辑器中“快捷键”文本框。
(7)Visible:决定菜单项是否可见。
对应菜单编辑器中“可见”复选框。
(8)WindowList:决定菜单控件是否维护当前MDI子窗口的列表。
对应菜单编辑器中“显示窗口列表”复选框。
5、事件:只有一个单击事件,即Click事件。
二、RichTextBox控件:1、功能:创建能输入和编辑大量文本的、能设置字符格式、段落格式的文本框。
2、打开、保存的文件格式:RTF格式和ASCII文本格式两种。
3、常用属性:(1)FileName:返回或设置装入RichTextBox控件的文件名。
只能指定文本文件或有效的.rtf文件名。
(2)MaxLength:最大字符数。
(3)MultiLine:是否显示和接受多行文本。
(4)RightMargin:文本右边距。
(5)ScrollBars:自带水平或垂直滚动条。
0——无1——水平滚动条2——垂直滚动条3——两者都有(6)SelAlignment:段落对齐方式。
设计时无效。
0——左对齐1——右对齐2——居中对齐(7)选定文本的字体样式:设计时无效。
SelBold:粗体;SelItalic:斜体;SelStrikethru:删除线;SelUnderline:下划线。
教案讲稿第六章数组[旧课复习]:复习内容:1.循环语句2.多重循环使用复习目的:学生掌握两种基本循环结构语句的使用以便在数组中能正确使用循环语句复习时长:大约5分钟[新课导入]:导入方式:引入日常生活中的实例让学生理解数组的功能导入目的:增强学生的理解能力导入时长:大约10分钟[新课讲授]:重点:静态数组、动态数组的基本操作及列表框和组合框的使用难点:控件数组方法:运用多媒体辅助教学,采用讲授法和启发式教学法6.1数组的概念6.1.1数组概念数组并不是一种数据类型,而是一组相同类型数据的集合。
用一个统一的名字(数组名)代表逻辑上相关的一批数据,每个元素用下标变量来区分;下标变量代表元素在数组中的位置。
数组中的各个变量称为数组元素,数组中的每个元素用一个唯一的下标(索引)来标识。
如m(5),表示名为m的数组中下标为5的那个元素。
数组元素的个数称为数组的长度(大小)。
数组的各个元素在内存中是连续存放的,如图6-1所示。
数组名表示这个连续数据区域的起始位置,下标表示对应元素在内存区域中的相对位置。
图6-1 数组在内存中的存放方式6.1.2数组的分类Visual Basic中的数组,按不同的方式可分为以下几类:按数组的大小(元素个数)是否可以改变分为:静态(定长)数组、动态(可变长)数组。
按元素的数据类型可分为:数值型数组、字符串数组、日期型数组、变体数组等。
按数组的维数可分为:一维数组、二维数组、多维数组。
对象数组:菜单对象数组、控件数组。
6.2静态数组6.2.1 静态数组的声明1.一维数组静态一维数组的声明格式如下:Dim数组名(下标) [ As <类型> ]说明:(1)数组的命名与简单变量的命名规则相同。
(2)下标的格式为:[<下界> to <上界>]<下界>和<上界>不能使用变量,必须是常量,常量可以是直接常量、符号常量,一般是整型常量。
若省略下界,则默认为0。
(4)数组的元素个数=上界−下界+1。
(5)如果省略As子句,则数组的类型为变体类型。
2.多维数组静态多维数组的声明格式如下:Dim数组名(下标1[,下标2…]) [As类型]说明:(1)下标个数决定数组的维数,VB允许声明的维数最多为60维。
(2)每一维的大小=上界-下界+1;数组的大小=各维大小的乘积。
例:Dim C(-1 To 5,4)As Long声明的数组名是C,类型为长整型、二维数组,第一维下标范围为-1~5,第二维下标的范围是0~4,占据7×5个长整型变量的空间。
(3)在数组声明中的下标关系到每一维的大小,而在程序其他地方出现的下标为数组元素,两者写法相同,但意义不同。
(4)在数组声明时的下标只能是常数,而在其他地方出现的数组元素的下标可以是变量或表达式。
6.2.2 数组的基本操作1.数组的输入数组元素可以通过赋值语句输入,元素过多且输入较有规律时,可借助循环语句输入。
例如:Dim A(1 To 10) As IntegerFor i=1 To 10A(i)=1Next i2.数组的输出数组的输出方式有很多种,可以输出在标签、文本框、列表框中,也可以使用Print方法输出在窗体或图片框中。
【例6-1】随机产生10个两位整数,找出10个数中最大值、最小值,并计算10个数的总和。
分析:先10次随机取数,得到10个不相同的两位数,用数组存储起来。
然后对数组中的数进行查找,找出最大值、最小值,最后计算出10个数之和,并输出在文本框中。
设计步骤如下。
(1)建立如图6-1所示的界面。
添加一个框架Frame1,然后再添加一个标签Label1用来输出随机取出的10个数字。
图6-1 求最大值、最小值及所有数字总和(2)编写代码。
由于数组需要在不同的过程中使用,所以在通用段中声明数组:Dim s(1 To 10) As Integer窗体加载时,随机取数并显示输出在窗体上:Private Sub Form_Load()Dim p As StringRandomizep = ""For I = 1 To 10s(I) = Int(Rnd * 90) + 10If I Mod 5 <> 0 Thenp = p & Str(s(I)) & ","Elsep = p & Str(s(I)) & Chr(13) End IfNext ILabel1.Caption = LTrim(p)End Sub单击“确认”按钮,求数组中的最大值、最小值、总和:Private Sub Command2_Click()Dim max As Integer, min As Integer, x As Integermax = s(1): min = s(1): x = 0For I = 1 To 10 '从第二个数组元素开始比较If max < s(I) Then max = s(I)If min > s(I) Then min = s(I)x = x + s(I)NextText1.Text = maxText2.Text = minText3.Text = xEnd Sub6.2.3 与数组相关的函数1.数组初始化函数ArrayVB中给数组的各个元素赋初值,就称为数组的初始化。
不进行赋初值,则在定义的时候自动初始化为0或者空串。
如果数组是一维数组,则可使用VB提供的Array函数。
其语法格式为:<数组名>=Array(<数组元素值1>,<数组元素值2>,<数组元素值3>,…)说明:(1)<数组名>是预先定义的Variant类型变量。
赋值时,只需要数组变量名,不需要添加数组的下标。
(2)数组元素值的列表按下标顺序排列,以逗号分隔开,连续赋值。
如果不提供参数,则创建一个长度为0的数组。
(3)使用Array函数创建的数组的下界可由Option Base语句指定的下界来决定。
换句话说,下界值只有0和1两种情况。
(4)Array函数返回的是一组Variant类型的值。
该数组为一维,二维或多维数组不适用。
2.用UBound()和LBound()函数确定数组的上、下界若不知道数组的上、下界,则可通过UBound()和LBound()函数获得。
函数格式为:UBound(数组名, [N]) 求数组中第N维的上界值LBound(数组名, [N]) 求数组中第N维的下界值例如:Option Base 1Dim S(1, 3, 2) As Integera = UBound(S, 2) 'a得到数组S第二维的上界值3b = LBound(S, 3) 'b得到数组S第三维的下界值16.3 动态数组在数组的使用中,有时在程序设计阶段暂时不能确定数组所需的大小,而无法再声明数组的大小。
若在程序一开始就声明一个较大的数组,则保存该数组的内存长期被占用,浪费系统资源。
若使用动态数组,则数组大小不固定,可以在任何时候根据需要改变大小,从而有效利用系统资源。
6.3.1 建立动态数组要创建动态数组,可按照以下步骤进行。
(1)首先用Dim语句在过程中声明一个数组,只定义其数组名,不指定数组的大小。
例如:Dim A () As Integer(2)在程序执行过程中,使用ReDim语句修改数组的大小或数组的上界。
格式为:ReDim [Preserve] 数组名(<维数定义>) [As <类型>]例如:在通用声明段中第一次声明建立动态数组C:Dim C() As Long然后,在过程中给数组分配相应空间:Private Sub Command1_Click()…ReDim C(19, 9)…End Sub这里的ReDim语句给C分配了一个20×10的长整型的整数矩阵。
【例6-2】编写程序,按照用户输入的行数输出相应大小的杨辉三角。
分析:杨辉三角中的每行是按照(a+b)n二项式展开式中各项的系数。
由图6-10所示的排列格式可看出,杨辉三角每行的第一列和斜边上的元素均为1,其余各项的值都是其上一行中前一列元素与上一行同一列元素之和,即第i行,第j列上的元素为 A(i,j)= A(i-1,j-1)+ A(i-1,j),若该行同一列没有元素时则认为是0。
设计步骤如下。
(1)程序界面的建立与各控件属性的设置如图6-2所示。
(2)编写代码。
编写Command1的Click事件代码:Private Sub Command1_Click()Dim a()ClsDim n As Integern = Val(Text1.Text)ReDim a(n, n)For i = 1 To na(i, 1) = 1: a(i, i) = 1NextFor i = 3 To nFor j = 2 To i - 1a(i, j) = a(i - 1, j - 1) + a(i - 1, j)Next jNext iFor i = 1 To nFor j = 1 To iPrint Tab(6 * j); a(i, j);Next jPrintNext iEnd Sub6.4 控件数组6.4.1 控件数组的概念一组相同类型的控件组成。
它们共用一个控件名,具有相同的属性,建立时系统给每个元素赋一个唯一的索引号(Index)。
控件数组共享同样的事件过程,通过返回的下标值区分控件数组中的各个元素。
例: Private Sub command1 _Click(Index As Integer)…If Index=3 then‘处理第四个命令按钮的操作End If…End Sub6.4.2 控件数组的建立一、在设计时建立控件数组的步骤:1.窗体上画出控件,进行属性设置,这是建立的第一个元素;2.选中该控件,进行“Copy”操作若干次和“Paste”操作若干次建立了所需个数的控件数组元素。
3.进行事件过程的编程。
【例6-3】利用文本框控件组,对已经给定的10个两位数演示冒泡排序法的排序过程。
设计步骤如下。
(1)建立如图6-3所示的界面,添加控件并设置其相关属性。
(2)编写代码。
在通用段中声明n 为常量,方便在不同过程中使用:Const n = 10在Form_Load 事件中编写代码,随机取出10个数字。
Private Sub Form_Load()Dim p As StringRandomizep = ""For i = 1 To 10s(i) = Int(Rnd * 90) + 10Text1(i).Text = s(i)Next iEnd Sub单击“排序”按钮的代码如下:Private Sub Command1_Click()For i = 1 To n - 1MsgBox "现在进行第" & i & "轮比较,将找出" & n - i + 1 & "数中最大的" & _"放置在下方" 图6-3 演示冒泡排序法的过程For j = 1 To n - iText1(j).BackColor = RGB(0, 255, 0)Text1(j + 1).BackColor = RGB(0, 255, 0)MsgBox "现在将相邻的两个数进行比较"If Val(Text1(j).Text) > Val(Text1(j + 1).Text) ThenMsgBox "数字较大的将放在下方,现在将相邻的两个数进行交换"t = Text1(j).TextText1(j).Text = Text1(j + 1).TextText1(j + 1).Text = tMsgBox "交换完毕,准备下次比较"ElseMsgBox "不交换"End IfText1(j).BackColor = RGB(255, 255, 255)Text1(j + 1).BackColor = RGB(255, 255, 255)Next jText1(n - i + 1).BackColor = RGB(255, 0, 0)MsgBox n - i + 1 & "个数中最大的是" & Text1(n - i + 1).Text Next iMsgBox "排序完毕"Text1(1).BackColor = RGB(255, 0, 0)End Sub“重置”按钮的代码如下:Private Sub Command2_Click()Form_LoadEnd Sub6.5 列表框与组合框6.5.1 列表框能将多个项目列出;供用户从中作出选择,当用户单击某一项目时,该项目反背景显示出来,VB会表示选中.当列表框中列出的项目很多超出列表框,会自动给列表框加上垂直滚动条。