| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 691 人关注过本帖
标题:将label 相同内容最多的label设为一种颜色
只看楼主 加入收藏
snrtjat
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:山那边 海尽头
等 级:贵宾
威 望:22
帖 子:1115
专家分:7025
注 册:2013-1-21
结帖率:89.19%
收藏
已结贴  问题点数:50 回复次数:4 
将label 相同内容最多的label设为一种颜色
图片附件: 游客没有浏览图片的权限,请 登录注册

将上图中的32个label,按相同内容去区分,根据内容从最多的label到最少的label去显示颜色
控件check的作用是将内容相同最多的一组label颜色显示为::&HFF00&
如:内容为:"Label1"的共有22个
    内容为:"Label2"的共有5个
    内容为:"Label3"的共有5个
    根据上面的数据,当按下check时将内容为:"Label1"的label颜色设为:&HFF00&
控件clear的作用是将颜色为:&HFF00&的label清空并将颜色还原。
注意:label.Caption是随机输入的,不是指定的哟。

求高手指点,我不知道怎么去判定找出内容相同并最多的label?
2013-06-07 14:41
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:50 
1、如果  label 组成的是 控件数组,那么直接对控件数组操作。
2、如果 不是,那么对窗体的 label 操作。

代码是第二种情况的代码

程序代码:
Option Explicit

Private Sub Command1_Click()
Dim o As Object

'清背景色
For Each o In Form1.Controls
    If TypeName(o) = "Label" Then
        o.BackColor = &H80000005
    End If
Next o

End Sub

Private Sub Command2_Click()

Dim s(32) As String
Dim sj(32) As Long
Dim i As Long, j As Long
Dim k As String
Dim n As Long

j = 0

'搜索所有标签,并统计内容的数据
Dim o As Object
For Each o In Form1.Controls
    If TypeName(o) = "Label" Then       '为标签
        k = o.Caption                   '取内容
        For i = 1 To j                  '搜索是否保存了
            If s(i) = k Then            '如果存在
                Exit For                '退出循环
            End If
        Next i
        If i > j Then                   '如果没的搜索到
            s(i) = k                    '取标签内容
            j = j + 1                   '标签种类计数 +1
        End If
        sj(i) = sj(i) + 1               '统计 +1
    End If
Next

'搜索所有的统计结果,找出最大的那个下标
n = 1
For i = 2 To j
    If sj(n) < sj(i) Then
        n = i
    End If
Next i

'搜索所有的标签,找到 统计结果最多的那个标签,然后加颜色
For Each o In Form1.Controls
    If TypeName(o) = "Label" Then
        k = o.Caption
        If k = s(n) Then
            o.BackColor = &HFF00&
        End If
            
    End If
Next

End Sub

授人于鱼,不如授人于渔
早已停用QQ了
2013-06-07 15:27
snrtjat
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:山那边 海尽头
等 级:贵宾
威 望:22
帖 子:1115
专家分:7025
注 册:2013-1-21
收藏
得分:0 
非常感谢你的帮忙。

不怕错误,只怕知错不改.
2013-06-07 15:53
snrtjat
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:山那边 海尽头
等 级:贵宾
威 望:22
帖 子:1115
专家分:7025
注 册:2013-1-21
收藏
得分:0 
试了一下,Label的内容为空的应该也要排除的,不然当控件clear清空后,内容为空的label数量就是最多的了。
应该怎么修改呢?

不怕错误,只怕知错不改.
2013-06-07 16:11
snrtjat
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:山那边 海尽头
等 级:贵宾
威 望:22
帖 子:1115
专家分:7025
注 册:2013-1-21
收藏
得分:0 
搞的太快了,只能怪自己没有动脑子,现在已做出来了.
在这里非常感谢您非常即时的答复。谢谢!

不怕错误,只怕知错不改.
2013-06-07 16:22
快速回复:将label 相同内容最多的label设为一种颜色
数据加载中...
 
   



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

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