在下面示例中,使用 listcount 遍历所有数据项。这些数据项由组合框或列表框的 list 属性指定。
*下面示例创建了一个列表框,列表框数据项中的数据项源是一个数组。该数组用 rowsourcetype 和 rowsource
属性指定。列表框的 multiselect 属性设置为“真”(.t.),允许从列表框中做多项选择。在 for ... endfor 循环中使用 listcount
属性来显示列表框中选定的数据项。selected 属性用来确定所选择的数据项。list 属性用来返回数据项。
clear
dimension gamylistarray(10)
for gncount = 1 to 10 && 用字母填充数组
store replicate(chr(gncount+64),6) to gamylistarray(gncount)
endfor
frmmyform = createobject('form') && 创建一个表单
frmmyform.closable = .f. && 使控制数据框无效
frmmyform.move(150,10) && 移动表单
frmmyform.addobject('cmbcommand1','cmdmycmdbtn') &&添加“取消”命令按钮
frmmyform.addobject('lstlistbox1','lstmylistbox') && 添加列表框控制
frmmyform.lstlistbox1.rowsourcetype = 5 && 指定一个数组
frmmyform.lstlistbox1.rowsource = 'gamylistarray' && 数组包含列表框数据项
frmmyform.cmbcommand1.visible =.t. && “取消”命令按钮可见
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. && 允许选择多于 1 个数据项
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