Foxtable(狐表)用户栏目专家坐堂 → [求助]请教大神!!如何实现窗口按钮自动变色


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

主题:[求助]请教大神!!如何实现窗口按钮自动变色

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/10 10:48:00 [显示全部帖子]

设置按钮的背景颜色,参考

 

e.Form.Controls("Button1").BackColor = Color.Red

e.Form.Controls("Button2").BackColor = Color.Red

 

你可以在CheckedChanged事件写代码

 

If e.sender.Checked Then

    e.Form.Controls("Button1").BackColor = Color.Red

    e.Form.Controls("Button2").BackColor = Color.Red

Else 

    e.Form.Controls("Button1").BackColor = Color.gray

    e.Form.Controls("Button2").BackColor = Color.gray

End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/10 11:26:00 [显示全部帖子]

测试代码

 

Dim cr As Row = Tables("表A").Rows(0)

If cr("电流总和") > 400 Then
    e.Form.Controls("Button1").BackColor = Color.green
    e.Form.Controls("Button2").BackColor = Color.green
Else
    e.Form.Controls("Button1").BackColor = Color.gray
    e.Form.Controls("Button2").BackColor = Color.gray
End If

代码你可以写到窗口的timetick事件 http://www.foxtable.com/webhelp/scr/1301.htm

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/10 11:56:00 [显示全部帖子]

理清你逻辑问题。

 

你每个按钮对应什么?你复选框勾选对应什么?勾选打开怎么计算?根据什么数据计算?显示什么颜色根据什么判断?

 

请上传具体实例说明。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/10 16:55:00 [显示全部帖子]

参考

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:转供电.table


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/11 9:50:00 [显示全部帖子]

修改代码

 

Dim ls As new List(Of String)
For Each c As object In e.Form.Controls
    If Typeof c Is winform.checkbox AndAlso c.checked Then
        ls.add(c.name)
    End If
Next

If ls.count > 2 Then
    msgbox("不能选择超过2个")
    e.sender.checked = False
    ls.Remove(e.sender.name)
Else If ls.count = 0 Then
    For i As Integer = 1 To 11
        e.Form.controls(i).backcolor = Color.gray
    Next
    Return
End If

Dim fdr As DataRow
If ls.count = 1 Then
    fdr = DataTables("联络线组合").find("对应复选框 = '" & ls(0) & "'")
Else
    fdr = DataTables("联络线组合").find("对应复选框 = '" & ls(0) & "," & ls(1) & "'")
    If fdr Is Nothing Then
        fdr = DataTables("联络线组合").find("对应复选框 = '" & ls(1) & "," & ls(0) & "'")
    End If
End If

If fdr IsNot Nothing Then
    For i As Integer = 1 To 11
        e.Form.controls(i).backcolor = Color.gray
    Next
    Dim s1() As String = fdr("对应复选框").split(",")
    Dim s2() As String = fdr("对应节点").split("|")
    For i As Integer = 0 To s1.length-1
        For Each s As String In s2(i).split(",")
            e.Form.controls(s).backcolor = e.Form.controls(s1(i)).ForeColor
        Next
    Next
Else
    msgbox("没有在表格找到对应的值")
End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/11 11:46:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:转供电 (1).table


 回到顶部