vb中list的用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vb中list的用法相关的知识,希望对你有一定的参考价值。

我想使用三个LIST控件
在第一个里选择一个后 在LIST2中出现对应的选项

然后在LIST2选择后 在LIST3显示 结果

1.对控件及其属性的基本应用,比如移动位置,放大缩小,隐藏显示

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的用法的主要内容,如果未能解决你的问题,请参考以下文章

VB中shell的用法

VB中const用法

关于 C# 中list<string> 的用法

关于VB中print的用法?

vb.net中treeview控件用法

vb6关于list列表搜索下一个的问题