当前位置: 首页 > news >正文

vb-listbox用法

列表框(ListBox)控件表示一个选项清单,用户可能用鼠标选择其中一个或者几个选项。

  列表框的特点是:列表框中的项目是通过程序插入到其中的,用户无法向清单中输入数据,当选择其中的项目,并在用户单击一个按钮或者执行某个操作时,由应用程序完成对指定项目的具体操作。下面这个例子充分说明了列表框的这个特点,并介绍了列表框(ListBox)的常用属性。

  为了学习方便,提供的源码已经作了详细的中文注释,看看源码框中的代码:

Option Explicit
'--------------------------------------
' 简单的列表框ListBox的例子
'--------------------------------------
' 洪恩在线 求知无限
'--------------------------------------
'------名称-------------作用------------
' List1、List2 列表框
' LefttoRightCmd 移动所选项目到另一个列表框(左到右)
' RighttoLeftCmd 移动所选项目到另一个列表框(右到左)
' List1MoveCmd 删除列表框List1中所选项目
' List2MoveCmd 删除列表框List2中所选项目
' List1AddCmd 给列表框List1增加新项目
' List2AddCmd 给列表框List2增加新项目
' List1ClearCmd 清空列表框List1
' List2ClearCmd 清空列表框List2
'--------------------------------------
'--------------------------------------
'————名称————属性设置———
'
' List1列表框 Sorted属性设为“False”
' List2列表框 Sorted属性设为“True”
' MultiSelect属性设置为2
' 即List2控件中的项目总是排序的
'--------------------------------------



Private Sub Form_Load()

'装载窗体时,给列表中的元素赋值
List1.AddItem "China"
List1.AddItem "America"
List1.AddItem "Japan"
List2.AddItem "Soccer"
List2.AddItem "Tennis"
List2.AddItem "Basketball"

End Sub

Private Sub LefttoRightCmd_Click()
'将左边列表中所选元素移动到右边列表中
If List1.ListIndex >= 0 Then

'在右边列表中增加新元素
List2.AddItem List1.Text

'删除左边列表中的所选元素
List1.RemoveItem List1.ListIndex

End If

End Sub

Private Sub List1AddCmd_Click()

Dim ListItem As String
'
ListItem = InputBox("在列表中输入新项目")
'向列表中加入新项目
If Trim(ListItem) <> "" Then
'Trim()作用是清除ListItem字符串内的空格

List1.AddItem ListItem
End If


End Sub

Private Sub List1ClearCmd_Click()

'清空列表
List1.Clear

End Sub

Private Sub List1MoveCmd_Click()

Dim i As Integer
'判断列表框是否只有一个项目被选中
If List1.SelCount = 1 Then

List1.RemoveItem List1.ListIndex

ElseIf List1.ListCount > 1 Then

'删除列表框中的所选中的多个项目
For i = List1.ListCount - 1 To 0 Step -1
'ListCount返回列表框中的项目总数
'ListCount-1是列表框中最后一个项目的索引号

'判断该项目是否被选中,Selected()返回布尔值
If List1.Selected(i) Then
'删除索引号为i的项目
List1.RemoveItem i

End If
Next
End If


End Sub


Private Sub List2AddCmd_Click()

'定义变量,以接收输入的字符串
Dim ListItem As String
ListItem = InputBox("在列表中输入新项目")

If Trim(ListItem) <> "" Then
'将字符串增加到列表中
List2.AddItem ListItem

End If


End Sub

Private Sub List2ClearCmd_Click()

'清空列表
List2.Clear

End Sub

Private Sub List2MoveCmd_Click()

Dim i As Integer
'判断所选 元素是否只有一个
If List2.SelCount = 1 Then

List2.RemoveItem List2.ListIndex
'如果所选 元素大于1,则按下列操作进行
ElseIf List2.ListCount > 1 Then
For i = List2.ListCount - 1 To 0 Step -1

If List2.Selected(i) Then
List2.RemoveItem i
End If
Next i
End If

End Sub

Private Sub RighttoLeftCmd_Click()

Dim i As Integer
'判断选中的元素有几个
If List2.SelCount = 1 Then

List1.AddItem List2.Text
List2.RemoveItem List2.ListIndex
'当选中的元素大于一个时
ElseIf List2.SelCount > 1 Then

For i = List2.ListCount - 1 To 0 Step -1
'如果该元素被选中,则将其从右边移至左边
If List2.Selected(i) Then

List1.AddItem List2.List(i)
List2.RemoveItem i
End If
Next i
End If

End Sub
(源程序下载)

这个例子包含一个窗体,窗体中有两个列表框(List1、List2)和八个按钮,界面如下:

点击打开新窗口

窗体(FormListBox)

我们首先新建一个标准的EXE工程,添加一个窗体,并把列表框和按钮控件添加到窗体上。各按钮控件的名称如下表:

按钮名称
名称属性
按钮名称
名称属性

删除所选项目(左)
List1movecmd
删除所选项目(右)
List2movecmd

增加新项目(左)
List1addcmd
增加新项目(右)
List2addcmd

清除弄表(左)
List1clearcmd
清除列表(右)
List2clearcmd

右箭头 lefttorightcmd 左箭头 Righttoleftcmd


' List1列表框 Sorted属性设为“False” ' List2列表框 Sorted属性设为“True” ' MultiSelect属性设置为2 ' 即List2控件中的项目总是排序的

  在属性窗口中,将List1列表框 Sorted属性设为“False”;List2列表框 Sorted属性设为“True”,MultiSelect属性设置为2,即List2控件中的项目总是排序的。

  下一步我们为各控件添加相应的程序。

  其中:

  List1.AddItem "China" 是将“China”添加到列表框中。

  List1.ListIndex 返回的是列表框List1中当前选择项目的索引号码。

  List1.ListCount 返回的是列表框List1中项目总数。

  List1.ListCount - 1 返回列表框List1中最后一个项目的索引号。

  List1.Selected() 返回的是一个项目的选择状态,返回的是布尔值。

  代码写好之后,我们就可以保存工程,然后按“Ctrl+F5”键,测试检验一下我们的程序了。在这个小程序中,包含了列表框中的一般常用属性和方法。
http://www.xdnf.cn/news/838477.html

相关文章:

  • Design pattern 第一讲 基础知识
  • Three.js进阶篇之2 - 动画
  • ARM处理器选型指南:选ARM7还是选Cortex-M3 ?
  • 使用django实现京东部分商品数据的爬虫并存入自带的sqlite数据库
  • Quartz之基本使用
  • equals方法与hashCode方法
  • 25款最好的数据恢复软件测评分析与对比
  • synchronized
  • Scale和Resolution的含义及转换算法
  • CRM 系统详解:定义、功能与应用全解析
  • 不看后悔!国内外程序员接单平台大合集!带你一次性了解各个热门接单平台!
  • Unable to open sync connection!(转)
  • 0基础小白学C语言看这一篇就够了(C语言详讲万字!!!)
  • 【愚公系列】用友系列之YonBuilder低代码平台概论和基本使用
  • Linux使用Backspace(消除键)键时出现^H 解决方法
  • 软件测试 —— 冒烟测试(Smoke Test,ST)_软件测试行业 冒烟用例
  • RBI远程浏览器隔离技术
  • 关于Applets
  • 错误应用程序 httpd.exe_错误模块 php5ts.dll,apache+php环境,时遇到php5ts.dll错误
  • app跳转到京东的某个页面
  • 书友必备EPUB阅读软件
  • 绘图软件:Autodesk AutoCAD 2012 简体中文正式版下载(32/64位)+有效破解激活注册机
  • 【Stable diffusion教程】AutoDL云部署超详细步骤说明【外婆都会】
  • Struts2之拦截器(拦截客户端对Action访问)
  • 学习python需要多长时间?
  • 前端中高级知识要点总结(3w+长文)
  • 相册管理系统|基于Springboot+Vue实现前后端分离的相册管理系统
  • 系统缺少steam_api.dll解决方式
  • 宜居行星网络信息
  • How to root TCC8900 Android2.1