以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]窗口表不能显示背景颜色?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=19244)

--  作者:jiangxin_321
--  发布时间:2012/5/3 15:18:00
--  [求助]窗口表不能显示背景颜色?

大家好,我通过drawcell实现了用红色背景标出数字小于0的单元格,用绿色背景标出了数字大于0的单元格,但当我通过窗口中的textbox插件绑定到该单元格使其在窗口中显示时,发现背景颜色不见了,请问这正常吗?

 

如果正常,那我想在窗口中实现数值大于零的时候亮绿灯,小于零的时候亮红灯,请问该采用何种插件,代码如何编写?


--  作者:jiangxin_321
--  发布时间:2012/5/3 15:45:00
--  
大家帮帮忙~
--  作者:blackzhu
--  发布时间:2012/5/3 15:50:00
--  

正常的.单元格事件和窗口控件不是一回事.

 

Dim Val As Double =  Forms("控件控制").Controls("Textbox1").Value
If Val < 0 Then
    Forms("控件控制").Controls("Textbox1").BackColor = Color.Red
ElseIf Val > 0 Then
    Forms("控件控制").Controls("Textbox1").BackColor = Color.Green
End If


--  作者:狐狸爸爸
--  发布时间:2012/5/3 15:58:00
--  
设置这个表的CurrentChanged事件:
 
If Forms("窗口名称").Opened Then
   if e.Table.Current("某列") > 0 Then
     Forms("窗口名称").Controls("Textbox1").BackColor = Color.Green
   else
      Forms("窗口名称").Controls("Textbox1").BackColor = Color.Red
   End if
End if

--  作者:jiangxin_321
--  发布时间:2012/5/3 16:04:00
--  回复:(blackzhu)正常的.单元格事件和窗口控件不是一...
谢谢你提供的代码,我想问一下,Val要怎么和我表中的数据联系起来,因为要判断它和0 的关系,那怎么把表中的值赋给它呢??
--  作者:jiangxin_321
--  发布时间:2012/5/3 16:06:00
--  回复:(狐狸爸爸)设置这个表的CurrentChanged事件:...
狐爸,看您的代码里引用的是某列,我的情况是同一列的不同单元格数据是不同的,请问怎么具体到每个单元格,代码要做何修改?
--  作者:狐狸爸爸
--  发布时间:2012/5/3 16:11:00
--  

If Forms("窗口名称").Opened Then

     Dim nms() AS String = {"Textbox1","Textbox2","Textbox6"}

     For Each nm As string in nms Then

        Dim v As Double = Forms("窗口名称").Controls(nm).Value

        If v > 0 Then

               Forms("窗口名称").Controls(nm).BackColor = Color.Green

        Else
                Forms("窗口名称").Controls(nm).BackColor = Color.Red

        End if
     Next
End if


--  作者:jiangxin_321
--  发布时间:2012/5/3 17:28:00
--  回复:(狐狸爸爸)If Forms("窗口名称").Opened Then...


图片点击可在新窗口打开查看此主题相关图片如下:问题11.bmp
图片点击可在新窗口打开查看
狐爸,提示出现问题……

 

晚上我做个实例发给您,您帮我看看实现下吧~先谢了


--  作者:狐狸爸爸
--  发布时间:2012/5/3 17:29:00
--  

If Forms("窗口名称").Opened Then
     Dim nms() AS String = {"Textbox1","Textbox2","Textbox6"}
     For Each nm As string in nms
        Dim v As Double = Forms("窗口名称").Controls(nm).Value
        If v > 0 Then
               Forms("窗口名称").Controls(nm).BackColor = Color.Green
        Else
               Forms("窗口名称").Controls(nm).BackColor = Color.Red
        End if
     Next
End if


--  作者:jiangxin_321
--  发布时间:2012/5/3 22:52:00
--  回复:(狐狸爸爸)If Forms("窗口名称").Opened Then...

狐爸好,不好意思这么晚打扰您~我按照您后来的代码做了,颜色能显示出来了,但貌似不太正确,有如下两个现象:

1、打开时窗口默认到第一行,颜色显示为绿色。此时单机别的行颜色无变化

2、双击任意一行,弹出窗口,此时亮灯颜色无(为白色),再双击表中其他任意行,均显示为绿色……

 

狐爸我做了个小例子发上来,麻烦您有时间的时候帮我改改~谢谢了(今晚没空明天也可,嘿嘿)

 

此外,还有个小请求,我在表事件的DataColChanged命令下的代码虽然成功运行,但各段相互之间无联系,只是弱弱的孤立写入,麻烦您帮忙简化一下~多谢多谢~

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