列表框.
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Debug.Print List1.List(0) strProvince = List2.List(1)
– ListCount属性:该属性记录当前列表框的项目总数。 比如下列代码可以输出列表框的全部内容:
For i = 0 To List1.ListCount Debug.Print List1.List(i) Next
ListBox控件示例2
【->>】按钮的事件过程表示所有课程全部选中,即可选课程中的 所有课程全部增加到选中课程列表框中,代码如下:
Private Sub cmdAllToRight_Click() Dim i As Integer For i = 0 To lstLeft.ListCount – 1 lstRight.AddItem lstLeft.List(i) Next lstLeft.Clear ‘清除可选课列表框 End Sub
单选ListBox控件示例1
•
【例】编写一个程序,输入要采购的书籍名称,按下 添加按钮后,将输入的内容添加到一个采购列表框中, 同时也可以选中列表框某书,按删除按钮从列表框中 删除。
单选ListBox控件示例1
' 按下添加按钮的代码 Private Sub cmdAdd_Click() lstBook.AddItem txtBook.Text txtBook.Text = "" txtBook.SetFocus End Sub ' 按下删除按钮的代码 Private Sub cmdDelete_Click() If lstBook.ListIndex <> -1 Then ' 有选择项目 lstBook.RemoveItem lstBook.ListIndex End If End Sub
【<<-】按钮的事件过程表示取消所有的选课,将选中课程列表中 的全部课程送回课选课程列表框中,代码如下:
Private Sub cmdAllToRight_Click() Dim i As Integer For i = 0 To lstRight.ListCount – 1 lstLeft.AddItem lstRight.List(i) Next lstRight.Clear ‘清除已选课列表框 End Sub
ListBox控件示例2
• 【->】按钮实现将 lstLeft 列表框中所有选中的项目增 加到右列表框中,即选课操作;【<-】按钮将右列表 框选中的课程送回到左列表框中,即取消选课。
' 该过程将第一个列表框的选中项目转移到第二个列表框中 Private Sub moveItem(objSource As Object, objTarget As Object) Dim i As Integer For i = objSource.ListCount - 1 To 0 Step -1 If objSource.Selected(i) = True Then '选中的项目进行转移 objTarget.AddItem objSource.List(i) objSource.RemoveItem i End If Next End Sub ' 选择课程到选课列表框中 ' 取消某些已选选课 Private Sub cmdToRight_Click() Private Sub cmdToLeft_Click() moveItem lstLeft, lstRight moveItem lstRight, lstLeft End Sub End Sub
• Remove 从列表中删除项目
• Clear 清除列表中的所有项目
lstCity.Clear
ListBox控件的值
二、取列表内容
– List属性:记录列表框中的全部项目。List属性是一 个字符串数组,列表框中的每个项目对应该数组的 一个元素,通过索引值来访问列表框的每个项目。 第一个项目的索引值为0,以此类推。
List1.Selected(0) List1.Selected(1) '返回列表中的第1个项目是否选中 '返回列表中的第2个项目是否选中
多选ListBox控件示例1
' 按下删除按钮的代码 Private Sub cmdDelete_Click() Dim i As Integer For i = lstBook.ListCount - 1 To 0 Step -1 If lstBook.Selected(i) = True Then lstBook.RemoveItem i End If Next End Sub 因为删除一个项目后,其后的项目索引值和列表项目数都会发生 变化,难以编程实现。所以列表框从后往前循环做删除操作。
第11章 列表框、组合列表框和滚动条
•
•
•
列表框控件(ListBox)是一个显示项目列表的窗口, 用户可以浏览并从中选择一个或者多个项目。 组合框控件( ComboBox )与列表框控件有些类似, 可以看作是 TextBox 和 ListBox 的结合体。组合框不仅 允许用户在列表框中选择项目,还允许用户在文本框 中输入文本的方式来选择项目或指定文本。 滚动条让用户控制数值在某指定范围内的变化,通过 用鼠标移动滚动条的位置来获得特定值。对于不能自 动支持滚动的控件,滚动条控件能帮助它们提供滚动 功 能 , 水 平 滚 动 条 ( HScrollBar ) 和 垂 直 滚 动 条 (VScrollBar)。
ListBox控件的事件
四、Click事件和DblClick事件 • 当选择列表框中的项目时,将触发Click事件,双击列 表框中的项目,将触发DblClick事件。 如果在 Click事件中有代码,则DlbClick事件将永远不 会被触发,因为Click事件是优先被触发的事件。 通常会响应DblClick事件
ListBox控件的选择
三、选取列表项目
– MultiSelect 属性:当取默认值 0-None 时,永远只能 选中列表框中的一个项目,当前选定项目的索引位 置可以通过控件的ListIndex属性来取得。 – ListIndex属性仅在程序运行时可用,用于设置或返 回列表框中当前选定项目的索引位置。如果没有项 目被选中,则ListIndex属性取值为-1。 – 取得当前选中的项目内容时,可以这样书写: List1.List(List1.ListIndex)
ListBox控件示例2
• 因为上述两个过程完成的操作基本相同,可以共用代码。因 此编写了一个通用子程序 moveAllItems ,其功能是将第一个 参数指定的列表框中的全部项目转移到第二个参数指定的列 表框中。
Private Sub moveAllItems(objSource As Object, objTarget As Object) Dim i As Integer For i = 0 To objSource.ListCount – 1 objTarget.AddItem objSource.List(i) Next objSource.Clear End Sub 【->>】按钮的事件过程: Private Sub cmdAllToRight_Click() moveAllItems lstLeft, lstRight End Sub 【<<-】按钮的事件过程: Private Sub cmdAllToLeft_Click() moveAllItems lstRight, lstLeft End Sub
•
ComboBox控件的值
• Text属性:获取组合框当前选定项目值,即最后文本 框中显示的文本。该文本既可以是选定的列表项目, 也可以是用户在文本框中输入的字符串。 【例】编写一个程序,使用组合框显示和查询学校所 有的系以及该系的所有专业。
•
ComboBox控件举例
' 初始化系名组合框 Private Sub Form_Load() cboFac.AddItem "物理系" cboFac.AddItem "化学系" cboFac.AddItem "计算机系" End Sub ' 根据选择的系名,填充不同的专业 Private Sub cboFac_click() cboSpec.Clear Select Case cboFac.Text Case "物理系" cboSpec.AddItem "理论物理" cboSpec.AddItem "应用物理" cboSpec.AddItem "天文物理" Case "化学系" cboSpec.AddItem "生物化学" cboSpec.AddItem "精细化工" Case "计算机系" cboSpec.AddItem "软件" cboSpec.AddItem "通信" cboSpec.AddItem "信息管理" End Select End Sub
•
•
ListBox控件示例2
【例】编写一个程序,显示学期所有可选课程列表,学生 选课时在课程列表中选择一个或多个课程添加到选中课程 列表框中,选过的课从可选课程列表中删除。 设计两个列表框,分别是lstLeft和lstRight
ListBox控件示例2
首先初始化可选课程列表框,在其中添加所有的选修课程名称: Private Sub Form_Load() lstLeft.AddItem "大学语文" lstLeft.AddItem "文化学" lstLeft.AddItem "音乐欣赏" lstLeft.AddItem "日语" lstLeft.AddItem "数学建模" lstLeft.AddItem "Web程序设计" lstLeft.AddItem "信息系统安全" lstLeft.AddItem "Linux操作系统" lstLeft.AddItem "Visual C++" End Sub
•
•
组合框ComboBox
组合框有三种样式,可以用Style属性来设置样式:
• • 下拉式组合框:Style属性设置为0 – Dropdown Combo),包 括一个文本框和一个下拉才出现的列表框,这是缺省的样式。 简单组合框:Style属性设置为1–Simple Combo,控件包括一个 文本框和一个固定显示的列表框。 下拉式列表框: Style 属性设置为 2–Dropdown List ,此样式不 具备文本框,不允许输入新的项目,仅能从列表中选择。
列表框ListBox
一、增减列表中的项目 • AddItem 向列表框中添加项目
lstCity.AddItem “ShangHai”, 1 – 参数1是要添加的字符串,参数2是添加的位置(索 ***在设计时添加项目(使用属性窗口) *** 引值),第一个项目索引值为 0 List属性下拉文本框可输入,Ctrl+Enter换行 lstCity.RemoveItem 0 – 项目删除后,之后项目的索引值会自动修正
多选ListBox控件
•
•源自文库
MultiSelect 属性:设置为 1-Simple 或者 2-Extended 时, 列表框可以实现多选。前者表示简单复选,即利用鼠 标单击或按下空格键在列表中选中或取消选中项,而 箭头键仅移动焦点。后者表示扩展复选,其用法与 Windows的文件列表的选择方法完全一样。 Selected 属性:该属性用来判断列表框中某一个项目 是否被选中,只能在运行时被使用。取值为True代表 选中, False 表示未选中。使用该属性需要指定项目 的索引值,如下:
ListBox控件的风格
Style 属 性 : 指 定 列 表 框 的 显 示 风 格 。 默 认 设 置 是 0– Standard,当设置为1–Checkbox时,在列表框的每一 个项目边上都有一个复选框,此时 MultiSelect 属性自 动被设置为0–None,并且不允许其它的设置,多选则。 通过复选框来实现,有标记的项目表示被选中,反之 则没有选中。
ListBox控件的其他属性
• Sorted 属性: 指定列表框的项目是否自动按字母顺序 排序,取值为False表示不排序,项目怎样添加进去的 就怎样显示;当取值为 True时,所有项目按照字母顺 序排列显示(中文按汉语拼音顺序),添加或删除项 目后仍然会遵守顺序。 SelCount 属性: 该属性返回当前被选中的列表项目的 数量,如果没有项目被选中,那么 SelCount 属性将返 回值0。该属性对允许多选的列表框是较为有用的。 Text 属性: 单选列表框可以用 Text 属性来获取当前选 择的项目。
– ListCount属性:该属性记录当前列表框的项目总数。 比如下列代码可以输出列表框的全部内容:
For i = 0 To List1.ListCount Debug.Print List1.List(i) Next
ListBox控件示例2
【->>】按钮的事件过程表示所有课程全部选中,即可选课程中的 所有课程全部增加到选中课程列表框中,代码如下:
Private Sub cmdAllToRight_Click() Dim i As Integer For i = 0 To lstLeft.ListCount – 1 lstRight.AddItem lstLeft.List(i) Next lstLeft.Clear ‘清除可选课列表框 End Sub
单选ListBox控件示例1
•
【例】编写一个程序,输入要采购的书籍名称,按下 添加按钮后,将输入的内容添加到一个采购列表框中, 同时也可以选中列表框某书,按删除按钮从列表框中 删除。
单选ListBox控件示例1
' 按下添加按钮的代码 Private Sub cmdAdd_Click() lstBook.AddItem txtBook.Text txtBook.Text = "" txtBook.SetFocus End Sub ' 按下删除按钮的代码 Private Sub cmdDelete_Click() If lstBook.ListIndex <> -1 Then ' 有选择项目 lstBook.RemoveItem lstBook.ListIndex End If End Sub
【<<-】按钮的事件过程表示取消所有的选课,将选中课程列表中 的全部课程送回课选课程列表框中,代码如下:
Private Sub cmdAllToRight_Click() Dim i As Integer For i = 0 To lstRight.ListCount – 1 lstLeft.AddItem lstRight.List(i) Next lstRight.Clear ‘清除已选课列表框 End Sub
ListBox控件示例2
• 【->】按钮实现将 lstLeft 列表框中所有选中的项目增 加到右列表框中,即选课操作;【<-】按钮将右列表 框选中的课程送回到左列表框中,即取消选课。
' 该过程将第一个列表框的选中项目转移到第二个列表框中 Private Sub moveItem(objSource As Object, objTarget As Object) Dim i As Integer For i = objSource.ListCount - 1 To 0 Step -1 If objSource.Selected(i) = True Then '选中的项目进行转移 objTarget.AddItem objSource.List(i) objSource.RemoveItem i End If Next End Sub ' 选择课程到选课列表框中 ' 取消某些已选选课 Private Sub cmdToRight_Click() Private Sub cmdToLeft_Click() moveItem lstLeft, lstRight moveItem lstRight, lstLeft End Sub End Sub
• Remove 从列表中删除项目
• Clear 清除列表中的所有项目
lstCity.Clear
ListBox控件的值
二、取列表内容
– List属性:记录列表框中的全部项目。List属性是一 个字符串数组,列表框中的每个项目对应该数组的 一个元素,通过索引值来访问列表框的每个项目。 第一个项目的索引值为0,以此类推。
List1.Selected(0) List1.Selected(1) '返回列表中的第1个项目是否选中 '返回列表中的第2个项目是否选中
多选ListBox控件示例1
' 按下删除按钮的代码 Private Sub cmdDelete_Click() Dim i As Integer For i = lstBook.ListCount - 1 To 0 Step -1 If lstBook.Selected(i) = True Then lstBook.RemoveItem i End If Next End Sub 因为删除一个项目后,其后的项目索引值和列表项目数都会发生 变化,难以编程实现。所以列表框从后往前循环做删除操作。
第11章 列表框、组合列表框和滚动条
•
•
•
列表框控件(ListBox)是一个显示项目列表的窗口, 用户可以浏览并从中选择一个或者多个项目。 组合框控件( ComboBox )与列表框控件有些类似, 可以看作是 TextBox 和 ListBox 的结合体。组合框不仅 允许用户在列表框中选择项目,还允许用户在文本框 中输入文本的方式来选择项目或指定文本。 滚动条让用户控制数值在某指定范围内的变化,通过 用鼠标移动滚动条的位置来获得特定值。对于不能自 动支持滚动的控件,滚动条控件能帮助它们提供滚动 功 能 , 水 平 滚 动 条 ( HScrollBar ) 和 垂 直 滚 动 条 (VScrollBar)。
ListBox控件的事件
四、Click事件和DblClick事件 • 当选择列表框中的项目时,将触发Click事件,双击列 表框中的项目,将触发DblClick事件。 如果在 Click事件中有代码,则DlbClick事件将永远不 会被触发,因为Click事件是优先被触发的事件。 通常会响应DblClick事件
ListBox控件的选择
三、选取列表项目
– MultiSelect 属性:当取默认值 0-None 时,永远只能 选中列表框中的一个项目,当前选定项目的索引位 置可以通过控件的ListIndex属性来取得。 – ListIndex属性仅在程序运行时可用,用于设置或返 回列表框中当前选定项目的索引位置。如果没有项 目被选中,则ListIndex属性取值为-1。 – 取得当前选中的项目内容时,可以这样书写: List1.List(List1.ListIndex)
ListBox控件示例2
• 因为上述两个过程完成的操作基本相同,可以共用代码。因 此编写了一个通用子程序 moveAllItems ,其功能是将第一个 参数指定的列表框中的全部项目转移到第二个参数指定的列 表框中。
Private Sub moveAllItems(objSource As Object, objTarget As Object) Dim i As Integer For i = 0 To objSource.ListCount – 1 objTarget.AddItem objSource.List(i) Next objSource.Clear End Sub 【->>】按钮的事件过程: Private Sub cmdAllToRight_Click() moveAllItems lstLeft, lstRight End Sub 【<<-】按钮的事件过程: Private Sub cmdAllToLeft_Click() moveAllItems lstRight, lstLeft End Sub
•
ComboBox控件的值
• Text属性:获取组合框当前选定项目值,即最后文本 框中显示的文本。该文本既可以是选定的列表项目, 也可以是用户在文本框中输入的字符串。 【例】编写一个程序,使用组合框显示和查询学校所 有的系以及该系的所有专业。
•
ComboBox控件举例
' 初始化系名组合框 Private Sub Form_Load() cboFac.AddItem "物理系" cboFac.AddItem "化学系" cboFac.AddItem "计算机系" End Sub ' 根据选择的系名,填充不同的专业 Private Sub cboFac_click() cboSpec.Clear Select Case cboFac.Text Case "物理系" cboSpec.AddItem "理论物理" cboSpec.AddItem "应用物理" cboSpec.AddItem "天文物理" Case "化学系" cboSpec.AddItem "生物化学" cboSpec.AddItem "精细化工" Case "计算机系" cboSpec.AddItem "软件" cboSpec.AddItem "通信" cboSpec.AddItem "信息管理" End Select End Sub
•
•
ListBox控件示例2
【例】编写一个程序,显示学期所有可选课程列表,学生 选课时在课程列表中选择一个或多个课程添加到选中课程 列表框中,选过的课从可选课程列表中删除。 设计两个列表框,分别是lstLeft和lstRight
ListBox控件示例2
首先初始化可选课程列表框,在其中添加所有的选修课程名称: Private Sub Form_Load() lstLeft.AddItem "大学语文" lstLeft.AddItem "文化学" lstLeft.AddItem "音乐欣赏" lstLeft.AddItem "日语" lstLeft.AddItem "数学建模" lstLeft.AddItem "Web程序设计" lstLeft.AddItem "信息系统安全" lstLeft.AddItem "Linux操作系统" lstLeft.AddItem "Visual C++" End Sub
•
•
组合框ComboBox
组合框有三种样式,可以用Style属性来设置样式:
• • 下拉式组合框:Style属性设置为0 – Dropdown Combo),包 括一个文本框和一个下拉才出现的列表框,这是缺省的样式。 简单组合框:Style属性设置为1–Simple Combo,控件包括一个 文本框和一个固定显示的列表框。 下拉式列表框: Style 属性设置为 2–Dropdown List ,此样式不 具备文本框,不允许输入新的项目,仅能从列表中选择。
列表框ListBox
一、增减列表中的项目 • AddItem 向列表框中添加项目
lstCity.AddItem “ShangHai”, 1 – 参数1是要添加的字符串,参数2是添加的位置(索 ***在设计时添加项目(使用属性窗口) *** 引值),第一个项目索引值为 0 List属性下拉文本框可输入,Ctrl+Enter换行 lstCity.RemoveItem 0 – 项目删除后,之后项目的索引值会自动修正
多选ListBox控件
•
•源自文库
MultiSelect 属性:设置为 1-Simple 或者 2-Extended 时, 列表框可以实现多选。前者表示简单复选,即利用鼠 标单击或按下空格键在列表中选中或取消选中项,而 箭头键仅移动焦点。后者表示扩展复选,其用法与 Windows的文件列表的选择方法完全一样。 Selected 属性:该属性用来判断列表框中某一个项目 是否被选中,只能在运行时被使用。取值为True代表 选中, False 表示未选中。使用该属性需要指定项目 的索引值,如下:
ListBox控件的风格
Style 属 性 : 指 定 列 表 框 的 显 示 风 格 。 默 认 设 置 是 0– Standard,当设置为1–Checkbox时,在列表框的每一 个项目边上都有一个复选框,此时 MultiSelect 属性自 动被设置为0–None,并且不允许其它的设置,多选则。 通过复选框来实现,有标记的项目表示被选中,反之 则没有选中。
ListBox控件的其他属性
• Sorted 属性: 指定列表框的项目是否自动按字母顺序 排序,取值为False表示不排序,项目怎样添加进去的 就怎样显示;当取值为 True时,所有项目按照字母顺 序排列显示(中文按汉语拼音顺序),添加或删除项 目后仍然会遵守顺序。 SelCount 属性: 该属性返回当前被选中的列表项目的 数量,如果没有项目被选中,那么 SelCount 属性将返 回值0。该属性对允许多选的列表框是较为有用的。 Text 属性: 单选列表框可以用 Text 属性来获取当前选 择的项目。