标题:Combo控件的Style设置为2-Dropdown List时,如何给combo赋值
只看楼主
皇火
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2022-3-14
结帖率:33.33%
 问题点数:0 回复次数:6 
Combo控件的Style设置为2-Dropdown List时,如何给combo赋值
如题,combo控件的RowSource的值是"AAA,BBB,CCC",RowSourceType是1-Value,我在Init里用this.displayValue="BBB"给combo控件赋值时,执行时显示总是为空白,用this.Value=2,能定位到BBB,但需要点击Combo后才显示。
用0-Dropdown Combo状态,虽然可以赋值,但我不喜欢这个状态下Combo的值可以修改。
请教老师,在2-Dropdown List状态下,如何在Init中设置初始值。
搜索更多相关主题的帖子: 控件 Style List 赋值 Combo 
2022-10-23 11:27
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:29
帖 子:484
专家分:1827
注 册:2018-3-13
得分:0 
vfp组合框的初值设置有时候确实很诡异,像你这种情况,比较通用的方法是在 init 中写 This.ListIndex = 2,可以避免要判断 Value 的数据类型
相当于
if vartype(this.value) = 'C'
    this.value = 'bbb'
else
    this.value = 2
endif


[此贴子已经被作者于2022-10-23 17:53编辑过]

2022-10-23 17:11
皇火
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2022-3-14
得分:0 
谢谢指点,还是很诡异,可以设置初始值,但在表单中再次赋值还是变成空开。
2022-10-25 07:57
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:29
帖 子:484
专家分:1827
注 册:2018-3-13
得分:0 
以下是引用皇火在2022-10-25 07:57:41的发言:

还是很诡异,可以设置初始值,但在表单中再次赋值还是变成空开。

建议你通过 ContolSource 将组合框绑定到一数据源(变量或字段),这样组合框的使用会比较简单且符合思维习惯
2022-10-25 09:37
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
没有绑定DBF时用好Index或ItemID就可以
绑定DBF时控制好DBF的记录定位再Requery刷新一下就可以
2022-10-25 14:49
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:649
专家分:2156
注 册:2014-2-7
得分:0 
我测试了一下,并没有遇到楼主出现的问题。在 Style 为“2-Dropdown List”时,不要使用 DisplayValue 设置初始值。在 Init 事件中,使用 THIS.Value = 'BBB' 或 THIS.VALUE = 2 均可以设置初始值,并没有碰到任何问题。
程序代码:
oFrm = NEWOBJECT('myform')
oFrm.Show(1)

DEFINE CLASS myform as Form
    ADD OBJECT comb1 as mycomb
ENDDEFINE

DEFINE CLASS mycomb as ComboBox
    RowSource = 'AAA,BBB,CCC'
    RowSourceType = 1
    Style = 2
    Left = 10
    Top = 10
    PROCEDURE Init
        THIS.Value = 'BBB'
*        THIS.Value [color=#808080]= 2[/color]
ENDDEFINE


泉城飞狐
2022-10-26 10:07
皇火
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2022-3-14
得分:0 
谢谢各位老师的指点,现在设置初始值的问题已经解决,放在Init中,如下:
this.RowSource='AAA,BBB,CCC'
this.RowSourceType= 1
this.displaycount=10
this.selectOnEntry=.T.
this.style=2
this.DisplayValue='BBB'  && 也可以是 this.Value=2
之前,this.RowSource='AAA,BBB,CCC'和this.RowSourceType= 1和this.displaycount=10这三句是放在When中的,行不通,感觉When与其它有执行次序的冲突。
目前,视乎在运行中,再对combo进行赋值,还是不顺,我先研究一下再通报。
2022-10-27 07:18



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-510418-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.086456 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved