4.7 组合框(ComboBox)
图4-10 组合框的三种形式
组合框(ComboBox)是由文本框和列表框组合而成的控件。
组合框有三种形式:下拉式组合框、简单组合框和下拉式列表框。(如图4-10所示)
三种形式都能在列表中选择项目,所选项目会显示在文本框中。“下拉式组合框”和“简单组合框”还可以通过在文本框中输入文本来进行选择。“下拉式组合框”和“下拉式列表框”均具有能“下拉”和“收起”的列表,可节省空间。通过Style属性可选择所需的形式。
4.7.1 属性与方法
(1)Style属性
决定组合框的类型和行为,可选值为0、1、2,默认值为0。
(a)0 – Dropdown Combo(下拉式组合框):正常状态仅显示文本框和下拉按钮;当单击下拉按钮时,会显示列表框供用户选择;再次单击下拉按钮,列表框隐藏,恢复正常状态。用户可以通过列表框选择项目,也可以在文本框中输入textbox控件边框设置
项目文本来进行选择,所选项目会显示在文本框中。此形式允许用户键入列表框中没有的选项。(b)1 – Simple Combo(简单组合框):文本框与列表框一起显示,文本框右侧无下拉按钮,列表框固定显示,不能被“拉下”和“收起”。对项目的选择与下拉式组合框相同。在设计时,应适当调整组合框的大小,否则执行时有些列表项可能不被显示。当选项数超过可显示的限度时将自动插入一个垂直滚动条。
(c)2 - Dropdown ListBox(下拉式列表框):外观同下拉式组合框一样,有下拉按钮以及可供“拉下”和“收起”列表框。与下拉式组合框的有所不同的是,用户不能在列表框中输入选项,而只能在列表中选择。
(2)其他属性与方法
组合框的大部分属性和方法与列表框相同,比如要访问控件的项目,可以用List数组;控件的当前选项由控件的Text属性确定;AddItem方法将项目加人到组合框的项目列表中;RemoveItem 方法将组合框中选定的项目删除;Sorted属性决定组合框中的项目是否排序等。
4.7.2 应用举例
【例4.7】修改“简单记事本”程序,要求使用组合框来实现选择、添加、删除字号。
分析:实现此要求,用组合框替换例4.6程序中的列表框即可。新项目可以在组合框中的文本框里输入,因此,只需用AddItem方法把组合框的T ext 属性值加入到列表中,即可实现“添加”功能。(如图4-11所示)
(a)运行后输入
内容(b)选择字号(c)添加、删除
字号
图4-11 用组合框选择、添加、删除字号
(1)界面设计
打开上节保存的“简单记事本”工程,删除原有的列表框和相应代码,新建一个组合框。
设置组合框的List属性首项为“10”,第二项为“12”;设置T ext属性值为“10”。
(2)编写代码
依次双击组合框和三个命令按钮,输入、修改代码如下:
Private Sub Combo1_Click()  '单击组合框中列表项时触发
Text1.FontSize = Combo1.Text '使文本字体大小为列表框中所选字号
End Sub
Private Sub Command1_Click() '单击"添加"按钮
Combo1.AddItem Combo1.Text '把用户在组合框中输入的字号添加到列表中
End Sub
Private Sub Command2_Click() '单击"删除"按钮
Combo1.RemoveItem Combo1.ListIndex '删除组合框中所选项目
End Sub
Private Sub Command3_Click() '单击"清空"按钮
Combo1.Clear  '清空组合框中的所有项目
End Sub
输入完成后,按F5键运行程序。在文本框中输入任意文本,单击组合框中的下拉按钮,点选列表项,可以设置相应的字号。在组合框中输入字号,单击“添加”按钮,列表中将增加所输入的字号。选择某一字号,单击“删除”按钮,会删除所选字号。单击“清空”按钮,则清除所有字号。运行无误后,请保存工
程,以备后用。
4.7.3  列表框与组合框的区别
(1)选择方式不同
列表框将一系列的选项组合成一个列表,用户可以选择其中的一个或几个选项,但不能向列表清单中输入项目;组合框是综合文本框和列表框特性而形成的一种控件,用户可以从列表中选定项目,也能通过在组合框中输入文本来选定项目。
(2)形式不同
列表框只有一种形式,只能在固定的区域内显示项目列表;而组合框有三种不同的形式可供选
择,其中的“下拉式组合框”和“下拉式列表框”只显示文本框和下拉按钮,通过对下拉按钮的单击可对列表进行显示和隐藏。
(3)Text属性的不同
列表框的Text属性值只能通过选择列表中的项目来获取;而组合框的Text属性值不仅来自所选项目,还
可以来自用户在组合框中输入的文本。因而,在使用AddItem方法添加项目时,组合框可以利用自身的Text属性来获得用户输入的文本;而列表框只能借助于InputBox函数或文本框控件来得到项目文本。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。