a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 161|回复: 1

[Visual FoxPro] 2011年度计算机等级考试二级VFP基础教程(38)

[复制链接]
发表于 2012-7-31 22:17:54 | 显示全部楼层 |阅读模式
 5.7 列表框控件(listbox)  一。列表框(listbox):主要用于选择一组指定的数据,用户从列表中选取选项,然后执行所需的操作。2 V5 x% c& d3 R* ^
  二。列表框常用属性:见下表/ g& \3 c( g: Y& x( o( [
属性作用rowsource列表项内容从何处来(来源)rowsourcetype列表项内容来源的类型,详见注1displayvalue选择值boundcolumn在列表框包含多项时指定哪一列作为value属性的值columncount行源列数list(i)第i行的值selected(i)第i行是否被选中multiselect是否可以同时选取多项moverbars项目是否可以移动sorted当rowsourcetype为0和1时,列表项是否按字母大小排序listindex列表框中当前被选定项的索引值integralheight列表框的高度是否可自动调整listcount列表框中数据项的数目incrementalsearch确定在键盘操作时是否支持增量搜索.值为.T.,当用键盘选择列表项,用户敲一个键,系统将自动定位到与输入字母相应的项前  注1(rowsourcetype属性可指定的值):  O$ n$ P1 C2 S5 C4 E( d
  0-无,运行时使用列表框的确良additem和addlistitem方法加入
+ D3 [7 z9 z$ A, ^) u$ |  1-值,将列表框的内容在设计时直接写在该属性中
, u- m2 C! I- p# u. L  2-表别名:由columncount确定表中选择的字段。当用户选择列表框时,记录指针将自动移到该记录上
$ e* C( P1 \; f6 ?, y6 T1 e. L  3-sql语句:见sql部分,由执行的结果产生。5 v4 l) c/ W  J" z; c3 N5 J
  4-查询文件名:见查询部分,由查询结果产生: N6 e6 t. e* T: i1 N7 l
  5-数组名% M) M5 R( f( S' W& t; S" r
  6-字段名表:可用表别名作为字段前缀。当用户选择列表项时,记录指针将自动移到该记录上
; Z4 X* H/ o- N  7-文件名描述框架,可包含"*"和"?"来描述在列表框中显示的文件名/ [; G' z6 `. O/ M  p
  8-结构# W1 W: V3 s1 `4 V" L7 g
  9-弹出式菜单,提供向后兼容。
回复

使用道具 举报

 楼主| 发表于 2012-7-31 22:17:55 | 显示全部楼层

2011年度计算机等级考试二级VFP基础教程(38)

  二。列表框常用的方法:见下表
+ {' x% P: F7 U0 K$ P) T+ d/ l方法作用additem增加列表项removeitem移去列表项clear移去所有列表项requery当rowsourcetype为3和4时,根据rowsource中的最新数据重新刷新列表项  三。列表框常用事件:列表框的常用事件为click(单击)事件和dbclick(双击)事件。# }" g. B, B7 W7 W8 Q! `! M
  四。例:列表框练习* u  {* Q3 ]- q7 K) W1 q8 s
  1.新建表单,添加一个文本框text1,三个命令按钮command1~command3,三个命令按钮的caption属性依次设为"加入","移出"和"全部移出",一个列表框list1.界面如图25$ ~& g% a5 X; z1 R
$ Q, O/ g- U3 k8 R$ o0 c% q( K
  2.设置属性:将表单的caption属性设为"列表框练习",autocenter属性设为。T.;将列表框list1的moverbars属性设为。T.,multiselect属性设为。T." P: v: R5 [5 O; _
  3.编写代码:
4 U4 i, j% z; ^, r" K; m* U  f  ●"加入"命令按钮command1的click事件:
" X1 t7 x# ~+ {! v! a7 h2 B4 J  qm=thisform.text1.value
1 s. ]2 D- {6 z7 ?  IF !empty(qm)& t* `( ]7 t3 y6 C% ^+ e7 B
  no=.t.$ o" f9 K" u' U& E9 G
  FOR i=1 to thisform.list1.listcount
( Q+ p# e- I0 D! t8 J+ f/ Y  IF thisform.list1.list(i)=qm &&如果文本框中输入的内容和列表框中已存在的内容相同,则不添加
7 T5 J! l& `! _0 X- J% K/ P* z  no=.f.
. P5 Q+ N# f# g! ^# S  e2 O  ENDIF4 m4 ]& }4 h5 \) W1 b$ C! x
  NEXT i4 m" [/ O9 z& m1 u& a, P4 D
  IF no& t2 h4 A$ N4 u& \" a% X. N
  thisform.list1.additem(qm)
, Q2 g3 Q9 O* Z' W. I( Y0 g  thisform.refresh
$ G8 l: x8 o, ]9 |  ENDIF4 T6 k$ r/ {- }: a0 e+ Z/ ^5 M! a
  ENDIF
) w6 T: K: z- C* _0 G) G  ●"移出"命令按钮command2的click事件:
" _7 K( {% r; @- B0 e: C  IF thisform.list1.listindex>0
+ E6 w' ?  O6 D& m& o1 n" C  thisform.list1.removeitem(thisform.list1.listindex)% U" |/ G- x. V
  ENDIF. W% r; e: R9 j9 f* t2 `' Y
  ●"全部移出"按钮command3的click事件:& `7 B2 f2 @+ r! p) S! f- ]2 x4 y
  thisform.list1.clear
. q2 }' b9 Y1 p- a9 l  ●列表框list1的init事件:
, I1 e  c6 s+ P2 U  thisform.list1.additem("杨过")
; m1 {6 Y. F8 U  c' @  thisform.list1.additem("小龙女")
! U" l. u$ w4 B0 {- A4 ?' N  thisform.list1.additem("东方不败")  i: X* X+ F! {2 q0 N( `6 {) V! t
  ●列表框list1的dbclick事件:3 Q4 W# @' w) v' |7 s
  thisform.command2.click() &&调用command2("移出"按钮)的click事件代码4 b8 c0 Z$ F5 C$ j
  说明:运行后,列表框中自动添加了3条记录,如图26,
% L9 P) C( Y, w5 L6 K- O - h5 Z7 {9 Q$ w) o
  这是在表单的init代码中添加的;在文本框中输入任意文本,如果和列表框中的内容不同,单击"加入"按钮,该内容会加入到列表框;否则不添加;在列表框中选中一条数据,单击"移出"按钮,该数据被删除;在列表框中直接双击某条数据,则的列表框的dbclick事件中调用"移出"按钮的click事件代码, 将双击的数据删除。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-6 21:52 , Processed in 0.187187 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表