以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]遍历控件背景颜色的一个问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=146979) |
-- 作者:1669607010 -- 发布时间:2020/3/7 9:22:00 -- [求助]遍历控件背景颜色的一个问题 窗口里做了个组织图,组织图的每个点为一个图片控件,组织点有两种状态,选中为黑,未选中为白,现在的需求是当组织图的任意一点状态发生变化时,遍历出所有选中状态的(黑色)控件,每一个选中控件生成一个12个字符的字符串(前5位为根据控件名称后五位+#FFFFFF组成,#FFFFFF根据控件背景色生成,),然后将所有的字符串用“丨”组合成一个字符串,再将最后的字符串绑定到表A的组织图列,现在哪位老师指导一下。 [此贴子已经被作者于2020/3/7 9:28:05编辑过]
|
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2020/3/7 10:05:00 -- 谢谢蓝老师指导 |
-- 作者:1669607010 -- 发布时间:2020/3/7 13:01:00 -- 蓝老师,现在的代码已经能将窗口的组织图信息保存到表A的“组织图”列,那么还有一个问题,如何在打开窗口的时候,将表A当前行的组织图信息同步到窗口中? |
-- 作者:有点蓝 -- 发布时间: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 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 -- 发布时间:2020/3/7 13:41:00 -- 谢谢老师明白了 |