
vb01 (18).ppt
25页第八章 VB中的常用控件(2),学习目标,列表框控件,列表框,列表框( List Box) 位置:工具箱(5,2)处 功能:显示供用户选择的多项数据 特点:自动添加滚动条,,列表框的属性,属性:列表框默认名称为list1,一般属性有: Columns,含义:列取值0时为单列,垂直滚动条取值1、2.时为多列,水平滚动 List,含义:表中的各项属性窗体中的该属性,可直接输入列表框的各项数据,用Ctrl+回车换行程序设计中,可采用List1.List(i)的形式来访问各项其中i=0代表第一项列表框的属性,一般属性: Style,两种取值:0-Standard,1-Checkbox默认为0,当设为1时各项前出现复选框 Multiselect,取0时只能选择单项,取1-Simple或2-Extended允许选中多项当Style=1,此项无需设置 Sorted,含义:是否排序默认为假,设为真时,框中项目按字符顺序进行自动排序列表框的属性,属性:以下属性用于代码设计阶段 ListCount,表中项目的个数因为从0开始编号,故最后一项的编号是 List1.Listcount-1,最后一项取值List1.List(List1.Listcount-1),注意不是List1.List(listcount-1)。
常用的处理格式 : for i=0 to list1.listcount-1 处理list1.list(i) next i,列表框的属性,属性: ListIndex,被选中项目的序号具体表示为list1.listindex,选中项目的取值为list1.list(list1.listindex) 若没有项被选中, list1.listindex的值为-1,若有多项选项时,该值代表最后一次选中的序号 Selected,代表是否选中,取值为真或假例如: for i=0 to list1.listcount-1 if list1.selected(i) then print list1.list(i) next i 打印出列表中被选中项(可能有多项)的取值列表框的属性,属性: Text,用来表示选中项目的取值实际上,list1.text 等价于list1.list(list1.listindex) 小结:指出各属性的含义 columns list style listcount listindex selected text,1、列数,2、某项的取值,3、复选框?,4、表中的项数,5、选中项序号,6、某项是否被选?,7、选中项的取值,,列表框的方法,additem方法:增加项 示例: list1.additem “王小明“ list1.additem “李强“, 0 removeitem方法:删除项 示例: list1.removeitem 5 Clear方法:全部删除 示例: list1.clear,,加为表中最后一项,加为表中第一项,移除第5项数据,全部删除列表中数据,练习,将项“China“添加到list1中成为第一项用何语句?成为最后一项用何语句? _________________,___________________ 表示list1最后一个数据项用____________ 表示list1当前被选中数据项用____________ 若list1中没有被选中项目,则执行 list1.removeitem list1.listindex 有何结果?__________ list1.selected(list1.listindex)的值是?______,List1.additem “China“,List1.additem “China“,0,List1.list(list1.listcount-1),List1.text,出错,true,列表框的方法,执行以下程序后,列表框中数据项是 List1.Clear For i=1 to 6 list1.additem I Next i For i=1 to 3 list1.removeitem i Next i,1、3、5,列表框示例1:敏感关联,例1:编程实现列表框与文本框的敏感关联:当单击某一学生姓名时,在文本框出现该生的籍贯。
列表框示例1,代码 Dim a, b Private Sub Form_Load() a = Array(“李宁“, “张伟“, “王春华“, “关红“, “华成宇“, “范杰“, “樊平“, “陈蓉“) b = Array(“江苏“, “江西“, “浙江“, “上海“, “河南“, “湖南“, “上海“, “海南“) For i = LBound(a) To UBound(a) List1.AddItem a(i) Next i End Sub Private Sub List1_Click() Text1 = b(List1.ListIndex) End Sub,列表框示例2:点菜系统,例2:利用列表框实现如下酒店自助点菜系统:,点菜系统,演示 点菜系统的演示 分析,点菜系统,代码 Dim a, b, sum Private Sub Form_Load() Dim i% a = Array(“麻辣茭白“, “梅菜扣肉“, “清蒸白鱼“, “水晶肴肉“, “铁板牛柳“, “虾仁蒸饺“, “香酥鸭 “, “鱼香茄子“, “家常豆腐“, “竹筒饭 “, “夫妻肺片“, “干煸鳝鱼“, “宫保鸡丁“, “火爆腰花“, “蚂蚁上树“, “软炸虾仁“, “生菜牛肉“, “蒜泥白肉“, “蒜香排骨“, “糖醋里脊“, “回锅肉 “, “杏仁豆腐“, “鱼香肉丝“, “松鼠鳜鱼“, “盐水鸭 “, “佛跳墙 “, “狮子头 “, “红烧肉 “, “辣子鸡丁“, “红烧排骨“, “凉拌苦瓜“, “麻婆豆腐“, “拔丝香芋“, “牙签牛肉“, “松子玉米“, “清蒸鲈鱼“, “酱牛肉 “, “宫爆鸡丁“) b = Array(10, 18, 20, 20, 20, 15, 18, 10, 10, 10, 15, 20, 18, 20, 20, 15, 20, 18, 25, 25, 18, 25, 20, 25, 28, 18, 18, 18, 20, 20, 12, 12, 15, 18, 18, 25, 25, 18) For i = LBound(a) To UBound(a) List1.AddItem a(i) & Space(2) & b(i) Next i List2.Visible = False End Sub,点菜系统,点菜系统,思路总结: 点菜按钮:将列表框1中选中的各项显示于列表框2中。
此外,当按下该按钮后,要做出以下准备工作:将选中标记清除,将列表框显示,将结账按钮变为可用 重新点菜按钮:清空并隐藏列表2,将累计金额置零,将选中标记清除等 结账按钮:将累计金额显示于label1中综合示例3:字体演示,例3:利用列表框中的字体和字号,对文本框中的文字进行设置综合示例3,演示 字体演示程序 分析,综合示例3,预备知识: 系统中字体个数: Screen.FontCount 系统中各字体: Screen.Font(i) 与字体有关的几个属性: FontName、FontSize、FontBold、 FontItalic、 FontUnderline 如何区别中文、西文字体?,综合示例3,代码 Private Sub Form_Load() Text1 = “千山鸟飞绝“ + vbCrLf + “万径人踪灭“ _ + vbCrLf + “孤舟蓑笠翁“ + vbCrLf + “独钓寒江雪“ For I = 0 To Screen.FontCount - 1 s = UCase(Left(Screen.Fonts(I), 1)) If Not (s = “A“ And s = “Z“) And Not s = “@“ Then List1.AddItem Screen.Fonts(I) ‘仅添加中文字体 End If Next I For I = 0 To 49 List2.AddItem 2 * I + 2 '生成所需的字号 Next I End Sub Private Sub List1_Click() Text1.FontName = List1.Text End Sub,综合示例3,代码 Private Sub List2_Click() Text1.FontSize = Val(List2.Text) End Sub Private Sub Check_Click(Index As Integer) Select Case Index Case 0: Text1.FontBold = Not Text1.FontBold ' 开/关 Case 1: Text1.FontItalic = Not Text1.FontItalic Case 2: Text1.FontUnderline = Not Text1.FontUnderline End Select End Sub,小结,列表框的属性 style:列表框是否允许多选。
只在属性窗口中设定 list1.list(i):列表中的第i项 list1.listcount :列表的项数 list1.listindex:列表当前被选项的序号 list1.selected(i):列表中第i项是否被选 list1.text:列表中当前被选项的取值 列表框的方法 list1.additem “ddddd“ 向表中添加元素 list1.removeitem i 移除第i项 list1.clear 清空列表,作业,完成如下界面程序,当单击加入时,将左边选中的选项加入到右边项目列表中,单击删除时,可将右边选定的项目删除。












