vb中list的用法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vb中list的用法相关的知识,希望对你有一定的参考价值。
我想使用三个LIST控件
在第一个里选择一个后 在LIST2中出现对应的选项
然后在LIST2选择后 在LIST3显示 结果
2.文本修改,文本的大小,字号,字体,字形效果
3.基本控制语句的使用
4.基础算法,初中水平的数学题(加减乘除)
1.常用控件
form,command,timer,text,label,list,combo1,scroll,option,check,frame,shape,line,image,picture
2.常用控件的属性
常用通用属性:
tabindex:设置tab键序
name(名称):设置当前控件的名称
caption:当前控件的标题
backcolor:背景颜色
按钮的背景颜色需要将style属性设置为1
forecolor:前景颜色(常用于字体颜色)
enabled:事件是否可用
font:字体对话框
fillcolor:填充色
height:设置当前控件的高度
width:设置当前控件的宽度
left:左边距
top:顶边距
visible:控件是否可见
index:下标(索引)
各类控件的常用属性:
form窗体
autoredraw:自动重绘
border-style:边框样式
icon:设置当前窗体的图标
maxbutton:最大化按钮
minbutton:最小化按钮
picture:设置窗体的背景tup
starupposition:设置窗体在屏幕中的位置
command按钮
cancle:设置是否响应esc键
default:设置按钮是否为缺省按钮
缺省按钮:
即当焦点不在按钮类控件上时,缺省按钮会响应enter(回车键)
缺省:即系统默认状态
style:设置是否显示图形
当其值设置为1时,按钮可以设置背景颜色和背景图片(pciture属性)
label标签:
autosize:自动大小
backstyle:设置背景样式是否透明
textbox文本框:
alignment:文字对齐方式
passwordchar:设置密码字符
text:文本属性
multiline:是否可以多行显示文本
maxlength:设置内容最大长度
scrollbars:设置文本框滚动条(multiline为true)
locked:设置文本是否可以编辑
frame框架:
无特殊属性,使用框架时注意复制的控件是在框架内还是在窗体内,类似于嵌套窗体,相当于form内的一个新的窗体,其主要作用就是当容器
checkbutton多选按钮:
value:返回设置当前多选框的状态,0,选中,1,未选中,2,不可选
optionbutton单选按钮:
value:返回布尔值,true时选中,false时未选中
有关按钮的属性多数参照command的属性
combobox:组合框
list:返回设置组合框的项,项的索引从0开始,可通过list(索引)的方式访问项
style:返回设置组合框的类别,其值为0,1,2
1.下拉式组合框(系统默认,框内可以输入值)
2.简单式组合框
height属性可以修改,其他两种默认为300缇(1twip=15px)
3.下拉列表式组合框(框内不可以输入值)
listbox:列表框
multiselect:设置列表框是否可以多选
selected(x)(隐藏属性):判断索引为x的项是否被选中,返回布尔值
scrollbars滚动条:
分垂直和水平两种,在这里列举通用的属性
max:上限
min:下限
value:当前滑块所在位置的value值
largechange:单击滑块空白区域增加的value值
smallchange:单击滑块两边箭头增加的value值
timer时钟:
interval:设置时钟每多少毫秒执行一次timer事件
image图像框:
stretch:设置图像是否自动调整大小
picture图片框:
autosize:设置图像是否自动调整大小
picture:图片对话框 参考技术A 我只做了list1和list2的,你需要可以添加更多数组以及代码来实现list3的..
Dim l1, l2, l3
Private Sub Form_Load()
Dim s$, i%
s = "颜色 星期 运动"
l1 = Split(s)
For i = 0 To UBound(l1)
List1.AddItem l1(i)
Next
s = "红色 绿色 黑色 蓝色 黄色"
l1 = Split(s)
s = "周一 周二 周三 周四 周五 周六 周日"
l2 = Split(s)
s = "羽毛球 网球 乒乓球 足球 排球"
l3 = Split(s)
End Sub
Private Sub List1_Click()
Dim i%
If List1.ListIndex = 0 Then
List2.Clear
For i = 0 To UBound(l1)
List2.AddItem l1(i)
Next
ElseIf List1.ListIndex = 1 Then
List2.Clear
For i = 0 To UBound(l2)
List2.AddItem l2(i)
Next
ElseIf List1.ListIndex = 2 Then
List2.Clear
For i = 0 To UBound(l3)
List2.AddItem l3(i)
Next
End If
End Sub 参考技术B 两种方法,第一种如楼上所言:
list1.additem "新增的项目1"
list1.additem "新增2"
第二:在list的属性框中添加,按ctrl+enter 换行
删除某一行:
Private Sub Command1_Click()
List1.RemoveItem 1 '删除第二行
End Sub
从鼠标单击选中的那一行获取行中数据:
Private Sub List1_Click()
MsgBox List1.Text 'List1.Text就是选中那行的数据
End Sub 参考技术C If List1.ListIndex <> -1 Then 注释:(当list1的内容没被选中事,不做此事件"也就不会报错")
List2.AddItem List1.Text 注释:(list2的内容 是 list1选中的内容)
List1.RemoveItem List1.ListIndex 注释:(将list1中选中的内容删除)
End If
vb6关于list列表搜索下一个的问题
现在已经实现了模糊搜索,但只能搜索第一个数值,无法搜索下一个,请问该怎样实现
Private Sub Command6_Click()
For i = 0 To List1.ListCount - 1
List1.ListIndex = i
If InStr(List1.List(i), Text1.Text) <> 0 Then
Me.Caption = List1.List(i)
MsgBox "恭喜你,找到了。。。" & vbCrLf & vbCrLf & List1.List(i)
Exit Sub
End If
Next
End Sub
Private Sub Command6_Click()
Dim a, b As String
For i = 0 To List1.ListCount - 1
a = LCase(List1.List(i))
b = LCase(Text1.Text)
If Len(a) >= Len(b) Then
For j = 1 To Len(a) - Len(b) + 1
If b = Mid(a, j, Len(b)) Then
c = MsgBox("找到:" & List1.List(i) & ",是否继续查找?", 36)
If c = 7 Then
List1.ListIndex = i
Exit Sub
End If
End If
Next
End If
Next
MsgBox "没有找到相符项。", 16
End Sub
在VB上试过,效果正确。 参考技术A Private Function FindNext(strText As String,lstSoure As ListBox,Optional nStart As Long = 0) As Long
With lstSource
For FindNext = nStart To .ListCount -1
If Instr(.List(FindNext),strText) Then _
Exit Function
Next FindNext
End With
FindNext = -1
End Function
Private Sub Command6_Click()
Dim pos As Long
pos = FindNext(Text1.Text,List1)
If pos <> -1 Then
Me.Caption = List1.List(pos) '默认从第0个开始找
MsgBox "恭喜你,找到了。。。" & vbCrLf & vbCrLf & List1.List(pos)
End If
pos = FindNext(Text1.Text,List1,pos + 1) '从当前位置的下一个开始找
If pos = -1 Then
MsgBox "未找到"
Else
MsgBox "下一个为 " & List1.List(pos)
End If
End Sub 参考技术B 本来还不想弄程序的~ 偶尔看到你这题目,觉得简单,就给你弄了个~
代码如下,剩下的自己修改吧。
Private Sub Command6_Click()
Dim i As Long
For i = List1.ListIndex + 1 To List1.ListCount - 1
If InStr(List1.List(i), Text1.Text) <> 0 Then
List1.ListIndex = i
Me.Caption = List1.List(i)
MsgBox "恭喜你,找到了。。。" & vbCrLf & vbCrLf & List1.List(i)
Exit Sub
End If
Next
List1.ListIndex = -1
MsgBox "Finish!"
End Sub
以上是关于vb中list的用法的主要内容,如果未能解决你的问题,请参考以下文章