豆十三,请问如何使用listbox的multiselect属性?

chenyuandxm 2006-06-06 09:08:04
当设置multiselect=.T.时,选择listbox的多项,如何得到所有的value值。
例如:listbox中有下列值:

AAA
BBB
CCC
DDD
EEE
FFF

现在按ctrl依次选中AAA,CCC,EEE,然后再去掉CCC,这时应该得到AAAEEE,该如何实现?
如果按shift一次选中AAA,BBB,CCC,DDD,EEE,然后再去掉AAA,CCC,这时应该得到BBBDDDEEE,又该如何实现?
请各位赐教,谢谢!
...全文
308 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
十豆三 2006-06-06
参考来自帮助中的代码:


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') && 添加 "Quit" 命令按钮
frmMyForm.AddObject('lstListBox1','lstMyListBox') && 添加 ListBox 控件

frmMyForm.lstListBox1.RowSourceType = 5 && 指定一个数组
frmMyForm.lstListBox1.RowSource = 'gaMyListArray' && 数组包含 listbox 项

frmMyForm.cmbCommand1.Visible =.T. && "Quit" 命令按钮可视
frmMyForm.lstListBox1.Visible =.T. && 列表框可见

frmMyForm.SHOW && 显示表单
READ EVENTS && 启动事件处理

DEFINE CLASS cmdMyCmdBtn AS CommandButton && 创建命令按钮
Caption = '\<Quit' && 命令按钮标题
Cancel= .T. && 默认取消命令按钮
Left = 125 && 命令按钮列
Top = 210 && 命令按钮行
Height = 25 && 命令按钮高

PROCEDURE Click
CLEAR EVENTS && 停止事件处理, 关闭表单
CLEAR && 清除 Visual FoxPro 主窗口
ENDDEFINE

DEFINE CLASS lstMyListBox AS ListBox && 创建 ListBox 控件
Left = 10 && 列表框列
Top = 10 && 列表框行
MultiSelect = .T. && 允许选择多个项

PROCEDURE Click
ACTIVATE SCREEN
CLEAR
? "选定项:"
? "---------------"
FOR nCnt = 1 TO ThisForm.lstListBox1.ListCount
IF ThisForm.lstListBox1.Selected(nCnt) && 项是选定的吗?
? SPACE(5) + ThisForm.lstListBox1.List(nCnt) && 显示项
ENDIF
ENDFOR

ENDDEFINE
回复
chenyuandxm 2006-06-06
谢谢豆十三!
回复
相关推荐
发帖
VFP
创建于2007-09-28

2491

社区成员

VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
申请成为版主
帖子事件
创建了帖子
2006-06-06 09:08
社区公告
暂无公告