| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 705 人关注过本帖
标题:内容相同的label为一种颜色
只看楼主 加入收藏
snrtjat
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:山那边 海尽头
等 级:贵宾
威 望:22
帖 子:1115
专家分:7025
注 册:2013-1-21
结帖率:89.19%
收藏
已结贴  问题点数:50 回复次数:7 
内容相同的label为一种颜色
在学习VB实践中碰到这样一个问题:
在窗体中有40个label(label1到label40),每个label中都显示了三个字符(如:40R、43J、44P等)
如何让相同内容的label显示一种颜色
(如:Label.caption=70R的为一种颜色  
      Label.caption=43J的为一种颜色
      Label.caption=B4P的为一种颜色
  ……)
请各高手赐教……


搜索更多相关主题的帖子: 颜色 如何 
2013-05-18 15:47
bczgvip
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:66
帖 子:1310
专家分:5312
注 册:2009-2-26
收藏
得分:0 
颜色呢?随机么?
2013-05-18 19:49
snrtjat
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:山那边 海尽头
等 级:贵宾
威 望:22
帖 子:1115
专家分:7025
注 册:2013-1-21
收藏
得分:0 
是的

不怕错误,只怕知错不改.
2013-05-18 19:52
益西翁登
Rank: 4
等 级:业余侠客
威 望:1
帖 子:126
专家分:272
注 册:2010-2-22
收藏
得分:0 
告诉我你的联系方式,我告诉你怎么弄
2013-05-18 19:56
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4938
专家分:30047
注 册:2008-10-15
收藏
得分:25 
程序代码:
Option Explicit

Private Sub Command1_Click()

Dim k(1 To 3) As String
Dim c(1 To 3) As Long
Dim i As Long
Dim o As Object

k(1) = "40R"
k(2) = "43J"
k(3) = "44P"

'随机填内容 ,针对所有的 标签
For Each o In Form1.Controls
    If TypeName(o) = "Label" Then
        i = 1 + Int(Rnd() * 3)
        o.Caption = k(i)
    End If
Next

For i = 1 To 3              '产生随机颜色
    c(i) = Int(Rnd() * 16777216)
Next i
    
'根据内容设置颜色
For Each o In Form1.Controls
    If TypeName(o) = "Label" Then
        Select Case o.caption
            Case "40R"
                o.ForeColor = c(1)
            Case "43J"
                o.ForeColor = c(2)
            Case "44P"
                o.ForeColor = c(3)
        End Select
    End If
Next

End Sub

授人于鱼,不如授人于渔
早已停用QQ了
2013-05-18 20:41
snrtjat
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:山那边 海尽头
等 级:贵宾
威 望:22
帖 子:1115
专家分:7025
注 册:2013-1-21
收藏
得分:0 
版主"风吹过b":非常感谢你的多次帮忙!
“40R、43J、44P……”是隔一段时间就会有变化的,
图片附件: 游客没有浏览图片的权限,请 登录注册
下一次有可能就更新为:
图片附件: 游客没有浏览图片的权限,请 登录注册

还请帮忙优化一下,谢谢!

不怕错误,只怕知错不改.
2013-05-19 00:44
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4938
专家分:30047
注 册:2008-10-15
收藏
得分:25 
For Each o In Form1.Controls
    If TypeName(o) = "Label" Then
        Select Case o.caption
            Case "40R"
                o.ForeColor = c(1)
            Case "43J"
                o.ForeColor = c(2)
            Case "44P"
                o.ForeColor = c(3)
            case else               '所以都不成立时 ,加这一组
                o.ForeColor = 0        '黑色
        End Select
    End If
Next

重新执行这一段就可以了。这一段就是 填色。
如果你还有更多的值,要么 增加 select 处理的组,要么你用数组来保存值和颜色,使用 FOR 循环来查找值来填色。
------------------
For i = 1 To 3              '产生随机颜色
    c(i) = Int(Rnd() * 16777216)
Next i
这一段是随机产生颜色, 如果你颜色确定了,那自然可以不要这段了。

----------
再前面部分是 随机产生数据用来调试用的。

[ 本帖最后由 风吹过b 于 2013-5-19 10:46 编辑 ]

授人于鱼,不如授人于渔
早已停用QQ了
2013-05-19 10:44
snrtjat
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:山那边 海尽头
等 级:贵宾
威 望:22
帖 子:1115
专家分:7025
注 册:2013-1-21
收藏
得分:0 
非常感谢你的帮忙!
祝生话愉快!天天都有好心情!

不怕错误,只怕知错不改.
2013-05-19 21:39
快速回复:内容相同的label为一种颜色
数据加载中...
 
   



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

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