在下面示例中创建了一个“列表框”,它的 multiselect 属性设置为“真”(.t.),允许在列表框中作多项选择。出现在列表框上的项来源于一个数组,这个数组是用 rowsourcetype 和
rowsource 属性指定的。在 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. &&允许选择多项
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