Foxtable(狐表)用户栏目专家坐堂 → [求助] drawcell 代码优化问题


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

主题:[求助] drawcell 代码优化问题

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


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

不用drawcell,直接给单元格设置图片,参考

 

Dim t As Table = Tables("表A")
Dim cs1 As C1.Win.C1FlexGrid.CellStyle = t.grid.Styles.Add("cs1")
cs1.BackgroundImage = getimage("d:\test.jpg")
cs1.Display =  C1.Win.C1FlexGrid.DisplayEnum.ImageOnly
cs1.BackgroundImageLayout = C1.Win.C1FlexGrid.ImageAlignEnum.Stretch

t.grid.SetCellStyle(1, 1, cs1)


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


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

Dim t As Table = Tables("XMFP")
For Each dt As Row In t.Rows
    Dim xl As Integer=  dt.Index + 1
    Dim yl As Integer=  t.Cols("缩略图").Index + 1
    If dt("缩略图") > ""  Then
        Dim cs1 As C1.Win.C1FlexGrid.CellStyle = t.grid.Styles.Add(dt("_Identify"))
        cs1.BackgroundImage = getimage( "\\SERVER\Foxtemp$\"  & dt("缩略图"))
        cs1.Display =  C1.Win.C1FlexGrid.DisplayEnum.ImageOnly
        cs1.BackgroundImageLayout = C1.Win.C1FlexGrid.ImageAlignEnum.Stretch
        t.grid.SetCellStyle(xl,yl, CS1)
        'Output.Show("\\SERVER\Foxtemp$\"  & dt("缩略图"))       
    End If
Next

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


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

可以写到AfterOpenProject事件,如果你修改了缩略图列的值,你还要在datacolchanged事件修改那一行的图片。类似2楼。

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


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

以下是引用81538475在2018/4/24 15:06:00的发言:
afteropen试过 了。。重新开项目的话,还是没有,只有个名字。

 

不可能。只要执行过一次,就肯定没问题。

 

上传实例测试。


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


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

以下是引用81538475在2018/4/24 15:30:00的发言:
是加载树的问题。。现在如何处理呢

 

你表格AfterLoad事件也加上那段代码。


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


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

以下是引用81538475在2018/4/24 15:42:00的发言:
好了多谢,刚才加到了全局事件的afterload中。。所以没效果。

 

全局事件的afterLoad事件,你要开启才能用的

 

http://www.foxtable.com/webhelp/scr/0671.htm

 


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


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

筛选之后afterFilter、排序之后afterSort,都是需要重新设置一次的。

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


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

以下是引用81538475在2018/4/25 10:17:00的发言:
恩,这两个设置之后,筛选和排序都OK了,但是子表上的图还是没有。选择父表上的一项,出现的子表信息,属于什么形式出现的呢,应该是放在这个事件里面吧。。

 

父表的currentChanged事件,你试试设置一下。或者子表的currentChanged。

 

如果不行,具体做个例子上来测试。


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


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

贴出所写代码;上传具体实例测试。


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


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

子表drawcell事件

 

If vars("start") = True AndAlso e.Col.name = "缩略图" Then
    '原来代码
    vars("start") = False
End If

 

父表CurrentChanged事件

 

vars("start") = True


 回到顶部
总数 13 1 2 下一页