以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  利用逻辑列的值来判断显示图  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=47038)

--  作者:李孝春
--  发布时间:2014/3/3 16:59:00
--  利用逻辑列的值来判断显示图
DataTables("收发文基础信息").AddUserStyle("a", Color.LightSteelBlue, Color.Black)
Dim pc3 As WinForm.PictureBox = Forms("系统主窗体").Controls("PictureBox3")
Dim pc2 As WinForm.PictureBox = Forms("系统主窗体").Controls("PictureBox2")
If e.Row("是否处理") = True Then
    e.Style = "a"
    pc3.Image = getimage (projectpath & "images\\已处理.jpg")
    pc2.Image = getimage (projectpath & "images\\已处理.jpg")
End If

If e.Row("是否处理") = False Then
    pc3.Image = getimage (projectpath & "images\\未处理.jpg")
    pc2.Image = getimage (projectpath & "images\\未处理.jpg")
End If
 
这个代码有没有更加优化一点的 便于提高效率,要求不是点单元格后就绘制,而是要求点击某行之后再进行绘制,比如双击某行!

--  作者:不倒的翁
--  发布时间:2014/3/3 17:01:00
--  
 表的Click事件里面写你要的代码,判断选中行是否Nothing,然后执行代码。
--  作者:李孝春
--  发布时间:2014/3/3 17:08:00
--  怎么写这个判断呢?判断选定行是否大于0
怎么写这个判断呢?判断选定行是否大于0或者不为空
--  作者:Bin
--  发布时间:2014/3/3 17:15:00
--  
最简单的方法,设置一个逻辑列,勾上在执行.
if e.row("逻辑列") then
If e.Row("是否处理") = True Then
    e.Style = "a"
    pc3.Image = getimage (projectpath & "images\\已处理.jpg")
    pc2.Image = getimage (projectpath & "images\\已处理.jpg")
End If

If e.Row("是否处理") = False Then
    pc3.Image = getimage (projectpath & "images\\未处理.jpg")
    pc2.Image = getimage (projectpath & "images\\未处理.jpg")
End If
end if

--  作者:Bin
--  发布时间:2014/3/3 17:15:00
--  
你也可以隐藏这个逻辑列,在双击事件中改变这个逻辑列的值
--  作者:李孝春
--  发布时间:2014/3/3 17:46:00
--  是放在那个事件中呢?
是放在那个事件中呢?drawcell么?

之前的代码是鼠标移动到单元格就会发生绘图 ,我现在就想鼠标选定了某行后双击再进行绘图,是不是应该放在鼠标双击事件中呢?

--  作者:Bin
--  发布时间:2014/3/3 17:47:00
--  
drawcell
--  作者:李孝春
--  发布时间:2014/3/3 17:48:00
--  是否处理 已经是逻辑列咯 BIN
是否处理 已经是逻辑列咯 BIN

代码也是放在drawcell中的

--  作者:Bin
--  发布时间:2014/3/3 17:50:00
--  
对.
--  作者:李孝春
--  发布时间:2014/3/3 17:53:00
--  但是还是不能实现我双击或者单击某行而进行显示图
但是还是不能实现我双击或者单击某行而进行显示图

还是会出现我鼠标移动就会绘图 导致图显示不准确