以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于控件背景颜色怎么随绑定值变化  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=18667)

--  作者:zyf1826
--  发布时间:2012/4/20 14:20:00
--  关于控件背景颜色怎么随绑定值变化
求高手帮忙,我想让窗口的lable控件的背景颜色,随着lable绑定值变化,这个判断语句怎么写,目前只能做到固定颜色,无法随值判定变化
 例如:Forms("故障报修弹出窗口").controls("Label8").backcolor = color.green   这个可以实现

但是要判断lable绑定的列 "设备状态"栏的数值变化时,无法执行,求高手帮忙修改代码:



If Forms("故障报修弹出窗口").controls("Label8").BindingField ("故障报修弹出窗口.设备状态").value="待修中" Then
Forms("故障报修弹出窗口").controls("Label8").backcolor = color.green
End If

--  作者:狐狸爸爸
--  发布时间:2012/4/20 16:05:00
--  

设置Table的CurrentChanged事件:

 

If Forms("故障报修弹出窗口").Opened then

      Dim r as Row = e.Table.Current

      if r("设备状态") = "待修中" then

            Forms("故障报修弹出窗口").controls("Label8").backcolor = color.green

      else

          Forms("故障报修弹出窗口").controls("Label8").backcolor = color.Red

      End If

End if


--  作者:zyf1826
--  发布时间:2012/4/20 17:02:00
--  
感谢版主的帮助,终于解决这个问题。

\'故障报修弹出窗口设备状态背景颜色转换
If Forms("故障报修弹出窗口").Opened Then
    Dim r As DataRow = e.DataRow
    If r("设备状态") = "待修中" Then
        Forms("故障报修弹出窗口").controls("Label8").backcolor = color.red
    Else If r("设备状态") = "维修中" Then
        Forms("故障报修弹出窗口").controls("Label8").backcolor = color.fuchsia
    Else If r("设备状态") = "运行中" Then
        Forms("故障报修弹出窗口").controls("Label8").backcolor = color.lime
    End If
End If

--  作者:zyf1826
--  发布时间:2012/4/21 7:45:00
--  
还有个问题啊,我在切换行的时候,怎么这个时候颜色不会自动切换啊,是不是程序加载位置不对,求指教。
--  作者:狐狸爸爸
--  发布时间:2012/4/23 7:22:00
--  

你还得在Table的CurrentChanged事件设置代码,注意CurrentChanged事件的e参数和DataColChanged事件是不同的。

CurrentChanged事件是换行后执行的,DataColChanged是修改某列的值后执行的。

这种问题最好配合简单的例子后发帖提问。