VFP中的列表框控件(listbox)
一.列表框(listbox):主要用于选择一组指定的数据,用户从列表中选取选项,然后执行所需的操作.
二.列表框常用属性:见下表
属性 | 作用 |
rowsource | 列表项内容从何处来(来源) |
rowsourcetype | 列表项内容来源的类型,详见注1 |
displayvalue | 选择值 |
boundcolumn | 在列表框包含多项时指定哪一列作为value属性的值 |
columncount | 行源列数 |
list(i) | 第i行的值 |
selected(i) | 第i行是否被选中 |
multiselect | 是否可以同时选取多项 |
moverbars | 项目是否可以移动 |
sorted | 当rowsourcetype为0和1时,列表项是否按字母大小排序 |
listindex | 列表框中当前被选定项的索引值 |
integralheight | 列表框的高度是否可自动调整 |
listcount | 列表框中数据项的数目 |
incrementalsearch | 确定在键盘操作时是否支持增量搜索.值为.T.,当用键盘选择列表项,用户敲一个键,系统将自动定位到与输入字母相应的项前 |
注1(rowsourcetype属性可指定的值):
0-无,运行时使用列表框的确良additem和addlistitem方法加入
1-值,将列表框的内容在设计时直接写在该属性中
2-表别名:由columncount确定表中选择的字段.当用户选择列表框时,记录指针将自动移到该记录上
3-sql语句:见sql部分,由执行的结果产生.
4-查询文件名:见查询部分,由查询结果产生
5-数组名
6-字段名表:可用表别名作为字段前缀.当用户选择列表项时,记录指针将自动移到该记录上
7-文件名描述框架,可包含"*"和"?"来描述在列表框中显示的文件名
8-结构
9-弹出式菜单,提供向后兼容.
二.列表框常用的方法:见下表
方法 | 作用 |
additem | 增加列表项 |
removeitem | 移去列表项 |
clear | 移去所有列表项 |
requery | 当rowsourcetype为3和4时,根据rowsource中的最新数据重新刷新列表项 |
三.列表框常用事件:列表框的常用事件为click(单击)事件和dbclick(双击)事件.
四.例:列表框练习
1.新建表单,添加一个文本框text1,三个命令按钮command1~command3,三个命令按钮的caption属性依次设为"加入","移出"和"全部移出",一个列表框list1.界面如图25
2.设置属性:将表单的caption属性设为"列表框练习",autocenter属性设为.T.;将列表框list1的moverbars属性设为.T.,multiselect属性设为.T.
3.编写代码:
●"加入"命令按钮command1的click事件:
1.value
IF !empty(qm)
no=.t.
FOR i=1 to thisform.list1.listcount
IF thisform.list1.list(i)=qm &&如果文本框中输入的内容和列表框中已存在的内容相同,则不添加
no=.f.
ENDIF
NEXT i
IF no
thisform.list1.additem(qm)
fresh
textbox控件边框设置ENDIF
ENDIF
●"移出"命令按钮command2的click事件:
IF thisform.list1.listindex>0
veitem(thisform.list1.listindex)
ENDIF
●"全部移出"按钮command3的click事件:
thisform.list1.clear
●列表框list1的init事件:
thisform.list1.additem("杨过")
thisform.list1.additem("小龙女")
thisform.list1.additem("东方不败")
●列表框list1的dbclick事件:
thisformmand2.click() &&调用command2("移出"按钮)的click事件代码
说明:运行后,列表框中自动添加了3条记录,如图26,
这是在表单的init代码中添加的;在文本框中输入任意文本,如果和列表框中的内容不同,单击"加入"按钮,该内容会加入到列表框;否则不添加;在列表框中选中一条数据,单击"移出"按钮,该数据被删除;在列表框中直接双击某条数据,则的列表框的dbclick事件中调用"移出"按钮的click事件代码,将双击的数据删除。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论