Foxtable(狐表)用户栏目专家坐堂 → 请教老师,为什么drawcell事件无效?


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

主题:请教老师,为什么drawcell事件无效?

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


加好友 发短信
等级:小狐 帖子:325 积分:2752 威望:0 精华:0 注册:2015/2/3 19:48:00
请教老师,为什么drawcell事件无效?  发帖心情 Post By:2018/12/22 11:35:00 [只看该作者]

If  e.Col.Name = "单价" Then
    If e.Row(e.Col.Name) = 0 Then 
        e.Style = "红色"
    End If
End If

已经定义了"红色"的方案。

表是sqltable类型的表,代码用sqlcommand返回的数据集当成它的datascorce。

我在窗体上的table控件上 drawcell 里写的上述代码。 可是发现无效。 问题出在哪呢?

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/12/22 11:39:00 [只看该作者]

设置datascorce的要到全局表事件drawcell 写,注意要在设置datascorce启用全局表事件drawcell

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


加好友 发短信
等级:小狐 帖子:325 积分:2752 威望:0 精华:0 注册:2015/2/3 19:48:00
  发帖心情 Post By:2018/12/22 12:36:00 [只看该作者]

是这样吗老师:
在窗口的afterload事件里:

Dim tb1 As WinForm.Table = e.Form.Controls("Table1")
tb1.Table.DataSource  = dt3
dt3.GlobalHandler.DrawCell = True '开启全局表事件


全局表事件的drawcell里:

Dim tb1 As WinForm.Table = Forms("窗口1").Controls("Table1")

Select Case e.Table.Name
    Case tb1.Table.Name
        If  e.Col.Name = "单价" Then
            If e.Row(e.Col.Name) = 0 Then
                e.Style = "红色"
            End If
        End If
End Select



这样还是不行啊? 求老师给看看

另外再问一下老师:是不是没有开启表事件,CurrentChanged、PositionChanged、AfterSelChange、AfterSelRangeChange这四个事件,在窗体的table事件里和 全局表事件里都有效。
而对其他表事件,即使开启了,也只能在全局表事件里写。  在窗体上写无效。
是这样吗?

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/12/22 14:15:00 [只看该作者]

样式也要动态添加:

Dim tb1 As WinForm.Table = e.Form.Controls("Table1")
tb1.Table.DataSource  = dt3
tb1.Table.DataTable.GlobalHandler.DrawCell = True '开启全局表事件
tb1.Table.DataTable.AddUserStyle("红色", Color.Red, Color.White)

 回到顶部