listbox 控件示例

下面示例创建了一个列表框控制。列表框中显示的菜单项源是一个用 rowsourcetype 和 rowsource 属性指定的数组。设置列表框的 multiselect 属性为真 (.t.),允许从列表中做多项选择。使用 listcount、select 和 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') && 添加“退出”命令按钮
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