| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2837 人关注过本帖
标题:求教:列表框不可选时数据项的颜色问题
只看楼主 加入收藏
丁春秋yxp
Rank: 4
等 级:贵宾
威 望:10
帖 子:246
专家分:296
注 册:2017-10-31
收藏
得分:0 
回复 10楼 吹水佬
这个非常简单啊,列表框被形状盖住后改变下前景背景啥的,就可以让他看起来跟Enabled=.f.时一模一样了。

[此贴子已经被作者于2022-12-2 19:07编辑过]

2022-12-02 18:19
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10551
专家分:42993
注 册:2014-5-20
收藏
得分:0 
以下是引用丁春秋yxp在2022-12-2 18:19:39的发言:

这个非常简单啊,列表框被形状盖住后改变下前景背景啥的,就可以让他看起来跟Enabled=.f.时一模一样了。

本来的 Enabled=.f. 时也有选项框看到,只是灰色
2022-12-02 22:31
星光悠蓝
Rank: 9Rank: 9Rank: 9
来 自:山水甲天下
等 级:贵宾
威 望:52
帖 子:515
专家分:1248
注 册:2010-1-11
收藏
得分:0 
为什么非得失效,是实现什么。
2022-12-03 09:07
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1066
专家分:2587
注 册:2015-12-30
收藏
得分:0 
以下是引用星光悠蓝在2022-12-3 09:07:38的发言:

为什么非得失效,是实现什么。

同问
2022-12-03 09:33
丁春秋yxp
Rank: 4
等 级:贵宾
威 望:10
帖 子:246
专家分:296
注 册:2017-10-31
收藏
得分:0 
回复 14楼 laowan001等
不清楚为什么几位会质疑这种用法,我解释一下,如果有更好的办法,请各位指导。
1、如图点击左边列表框后,表格显示所点击房屋具有的单据。
2、点击右下添加,就表示给该房屋添加新单据,此时处于编辑新单据状态。
3、编辑完成后点击右下的勾勾确定,则该单据入库;点击叉叉取消,则该单据不入库。
4、在确定该新单据是保存还是取消前,要求的是列表框不可选,并且突出显示当前是哪个房屋。
问题就在这里,让列表框的Enabled=.F.,则列表框“一片灰”,用户很难知道当前是给哪个房屋(或哪个人)添加新单据;
而8楼用透明形状盖住列表框的方法,则完美实现这个要求,图中所示就是列表框不可选,而且突出显示当前是给“崇邑村101号 唐仲”开新单据。
图片附件: 游客没有浏览图片的权限,请 登录注册
2022-12-03 20:59
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:645
专家分:2480
注 册:2018-3-13
收藏
得分:0 
学过 vfp 的应该都知道,不想让列表框得到焦点的方法有两种:
1. When 事件里返回 .f.
2. GotFocus 事件里加 NoDefault

加图片掩盖的方式,看似解决了问题,无法阻止用户用 tab 键将焦点切换到列表框

[此贴子已经被作者于2022-12-3 21:42编辑过]


这家伙很懒,啥也没留下
2022-12-03 21:23
丁春秋yxp
Rank: 4
等 级:贵宾
威 望:10
帖 子:246
专家分:296
注 册:2017-10-31
收藏
得分:0 
回复 16楼 csyx
谢谢提醒,我琢磨一下。
2022-12-03 21:54
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10551
专家分:42993
注 册:2014-5-20
收藏
得分:0 
listbox本身也可以做出不错的感觉
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

程序代码:
of = CREATEOBJECT("form1")
of.show(1)
RETURN 

DEFINE CLASS form1 as Form
    ADD OBJECT cmd as commandbutton WITH left=10,top=10,height=24,caption="Enabled=.F."
    ADD OBJECT lst as list1
    PROCEDURE cmd.click
        this.Caption = "Enabled="+TRANSFORM(thisform.lst.Enabled)
        thisform.lst.Enabled = !thisform.lst.Enabled
    ENDPROC 
ENDDEFINE

DEFINE CLASS list1 as ListBox
    left=10
    top=40
    width=200
    MultiSelect=1
    Picture="d:\temp\test_0.png"
    index = 0
    PROCEDURE init
        FOR i=1 TO 9
            this.AddItem(REPLICATE(TRANSFORM(i),10))
        ENDFOR 
        this.ListIndex = 1
        this.InteractiveChange
    ENDPROC 
    PROCEDURE InteractiveChange
        this.Picture(this.index) = "d:\temp\test_0.png"
        this.index = this.ListIndex
        this.Picture(this.ListIndex) = "d:\temp\test_1.png"
    ENDPROC
ENDDEFINE

2022-12-04 10:20
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1066
专家分:2587
注 册:2015-12-30
收藏
得分:0 
16楼的方法1即可完美解决
图片附件: 游客没有浏览图片的权限,请 登录注册


把list1.tag当作开关

[此贴子已经被作者于2022-12-4 10:35编辑过]

2022-12-04 10:34
丁春秋yxp
Rank: 4
等 级:贵宾
威 望:10
帖 子:246
专家分:296
注 册:2017-10-31
收藏
得分:0 
回复 18楼 吹水佬
版主真高,虽然复杂,但很漂亮,留存以备后用,谢谢。
2022-12-04 11:02
快速回复:求教:列表框不可选时数据项的颜色问题
数据加载中...
 
   



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

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