Foxtable(狐表)用户栏目专家坐堂 → [求助]遍历控件背景颜色的一个问题


  共有2725人关注过本帖树形打印复制链接

主题:[求助]遍历控件背景颜色的一个问题

帅哥哟,离线,有人找我吗?
1669607010
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:380 积分:3515 威望:0 精华:0 注册:2017/9/5 8:28:00
[求助]遍历控件背景颜色的一个问题  发帖心情 Post By:2020/3/7 9:22:00 [只看该作者]

窗口里做了个组织图,组织图的每个点为一个图片控件,组织点有两种状态,选中为黑,未选中为白,现在的需求是当组织图的任意一点状态发生变化时,遍历出所有选中状态的(黑色)控件,每一个选中控件生成一个12个字符的字符串(前5位为根据控件名称后五位+#FFFFFF组成,#FFFFFF根据控件背景色生成,),然后将所有的字符串用“丨”组合成一个字符串,再将最后的字符串绑定到表A的组织图列,现在哪位老师指导一下。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:组织图.table


[此贴子已经被作者于2020/3/7 9:28:05编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107718 积分:547917 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/7 9:44:00 [只看该作者]

If e.Sender.Name.StartsWith("组织")   Then
    
    If e.Sender.BackColor=Color.White   Then
        e.Sender.BackColor=Color.Black
    Else
        e.Sender.BackColor=Color.White
    End If
    
    Dim s As String
    For Each c As Winform.Control In e.Form.Controls
        If c.Name.StartsWith("组织") AndAlso c.BackColor <> Color.White   Then
            Dim clr As Color = c.BackColor
            Dim c1 As String = "#" & Format(clr.R,"X2") & Format(clr.G,"X2") & Format(clr.B,"X2")
            Dim c2 As String =c.Name.SubString(2,5)
            Dim c3 As String =c2 & "|" & c1
            s=s & c3
            
        End If
    Next
    s = s.trim("|")
    MessageBox.Show(s)
    Tables("表A").Current("组织图") = s
End If

 回到顶部
帅哥哟,离线,有人找我吗?
1669607010
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:380 积分:3515 威望:0 精华:0 注册:2017/9/5 8:28:00
  发帖心情 Post By:2020/3/7 10:05:00 [只看该作者]

谢谢蓝老师指导

 回到顶部
帅哥哟,离线,有人找我吗?
1669607010
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:380 积分:3515 威望:0 精华:0 注册:2017/9/5 8:28:00
  发帖心情 Post By:2020/3/7 13:01:00 [只看该作者]

蓝老师,现在的代码已经能将窗口的组织图信息保存到表A的“组织图”列,那么还有一个问题,如何在打开窗口的时候,将表A当前行的组织图信息同步到窗口中?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107718 积分:547917 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/7 13:36:00 [只看该作者]

2楼代码改一下
    For Each c As Winform.Control In e.Form.Controls
        If c.Name.StartsWith("组织") AndAlso c.BackColor <> Color.White   Then
            Dim clr As Color = c.BackColor
            Dim c1 As String = "#" & Format(clr.R,"X2") & Format(clr.G,"X2") & Format(clr.B,"X2")
            Dim c2 As String =c.Name.SubString(2,5)
            Dim c3 As String =c2 & "," & c1
            s=s & "|" & c3
            
        End If
    Next

窗口afterload

Dim s As String = Tables("表A").Current("组织图")

For Each s1 As String  In s.Split("|")
    Dim ar() As String = s1.Split(",")
    e.Form.controls("组织" & ar(0)).BackColor = System.Drawing.ColorTranslator.FromHtml(ar(1))
Next

 回到顶部
帅哥哟,离线,有人找我吗?
1669607010
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:380 积分:3515 威望:0 精华:0 注册:2017/9/5 8:28:00
  发帖心情 Post By:2020/3/7 13:41:00 [只看该作者]

谢谢老师明白了

 回到顶部