下面的示例创建了一个列表框。列表框项的数据源是一个数组。数组的名称由 rowsource 属性指定。 rowsourcetype 属性的设置是 5 (数组)。它用来指定列表框中各项的数据源是数组。列表框的 multiselect 属性设置是“真”(.t.) 。因此可以从列表框中做多项选择。然后使用 listcount、selected 和 list 属性显示列表框中已选定的项,以便计算出列表框中项的数目和所选择项的数目。
clear
dimension gamylistarray(10)
for gncount = 1 to 10 && 用字母填充数组
store replicate(chr(gncount+64),6) to gamylistarray(gncount)
next
frmmyform = createobject('form') && 创建一个表单
frmmyform.closable = .f. && 使控制菜单按钮无效
frmmyform.move(150,10) && 移动表单
frmmyform.addobject('cmbcommand1','cmdmycmdbtn') && 添加 "quit" 命令按钮
frmmyform.addobject('lstlistbox1','lstmylistbox') && 添加列表控制
frmmyform.lstlistbox1.rowsourcetype = 5 && 指定一个数组
frmmyform.lstlistbox1.rowsource = 'gamylistarray' && 包含列表框项的数组
frmmyform.cmbcommand1.visible =.t. && 使 "quit" 命令按钮可见
frmmyform.lstlistbox1.visible =.t. && 使列表框可见
frmmyform.show && 显示表单
read events && 开始事件处理
define class cmdmycmdbtn as commandbutton && 创建命令按钮
caption = '\<quit' && 命令按钮标题
cancel = .t. && 默认取消命令按钮(esc)
left = 125 && 命令按钮所在的列
top = 210 && 命令按钮所在的行
height = 25 && 命令按钮的高度
procedure click
clear events && 结束事件处理,关闭表
clear && 清理 visual foxpro 主窗口
enddefine
define class lstmylistbox as listbox && 创建列表框控制
left = 10 && 列表框所在的列
top = 10 && 列表框所在的行
multiselect = .t. && 允许多重选择项
procedure click
activate screen
clear
? "selected items:"
? "---------------"
for ncnt = 1 to thisform.lstlistbox1.listcount
if thisform.lstlistbox1.selected(ncnt) && 选中了该项吗 ?
? space(5) + thisform.lstlistbox1.list(ncnt) && 显示该项
endif
endfor
enddefine