vfp 下拉组合框初始值设置问题

想把vfp下拉组合框初始值做成自然数1,2,3,4,5,直到59为止,按降序排,用代码如何写,(不用表格字段,不用生成器),请赐教?... 想把vfp下拉组合框初始值做成自然数1,2,3,4,5,直到59为止,按降序排 ,用代码如何写,(不用表格字段,不用生成器),请赐教? 展开
 我来答
baitia0
2015-05-22 · TA获得超过2505个赞
知道大有可为答主
回答量:2275
采纳率:80%
帮助的人:2052万
展开全部

有2种方法


第一种用数组,不过如果数组填充数字的话, 列表里的选项会多了空格,因此建议数组的内容是字符

PUBLIC arrcombo

DIMENSION arrcombo(59)

FOR i=1 TO 59

   arrcombo(i)=ALLTRIM(STR(60-i))

ENDFOR 


thisform.combo1.RowSourceType= 5 

thisform.combo1.RowSource='arrcombo'



第二种直接用值,生成一个字符串('59,58,57,56.....')

ccombo=''

FOR i=59 TO 1 STEP -1

   ccombo=ccombo+IIF(EMPTY(ccombo),'',',')+ALLTRIM(STR(i))

ENDFOR    

thisform.combo1.RowSourceType= 1 

thisform.combo1.RowSource=ccombo




要注意的是

  1. 为防止用户自己输入,设置 style属性为1

  2. 读取的值(thisform.combo1.value) 是字符类型, 如果需要数字还要用val()转换一下

更多追问追答
追问
老师,第二种方法,我读懂了,循环时从高数位依次递减1,这是降序。如果是升序,则为每次从1递加1进行循环
FOR i=1 TO 59 STEP 1
……
ENDFOR
读懂心情真舒服,谢谢老师!
对于第一种方法,我没有弄懂,特别是这一句
arrcombo(i)=ALLTRIM(STR(60-i))
能进一步给讲一下吗?为何用60-i (教师,别笑我哈,我是菜鸟)
追答
在列表框显示数组的值, 第一个值是arrconbo(1),第二个是arrcombo(2).........
用循环命令赋值时,
我是从1到59的, 这和第二种方法是反着的
for i= 1 to 59
这里i首先是给数组元素用的, arrcombo(i)
当i=1是, 数组是第一个元素 arrcombo(1), 而他的值是59, 不就是60-i(60-1)吗?

同理当i=2时
数组是第二个,arrcombo(2), 他的值是58,不就是60-i(60-2)吗?
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式