Foxtable(狐表)用户栏目专家坐堂 → 如何在DrawCell中自定义样式


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

主题:如何在DrawCell中自定义样式

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


加好友 发短信
等级:幼狐 帖子:130 积分:874 威望:0 精华:0 注册:2008/8/31 21:32:00
如何在DrawCell中自定义样式  发帖心情 Post By:2009/5/15 13:26:00 [只看该作者]

假如不想用“表相关—其他—自定义样式”的方法添加自定义样式,而在表事件DrawCell中用代码自定义样式,代码该如何编写?


看到“DataList有一个AddUserStyle方法,用于向DataList添加自定义样式”后的一个想法。


 回到顶部
美女呀,离线,留言给我吧!
yangming
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/5/15 14:27:00 [只看该作者]

DrawCell

在绘制单元格的时候执行。

e参数属性有:

Form:     触发事件的窗口
Sender:   触发事件的控件
DataRow:  正在绘制的数据行
ColName: 正在绘制的列的名称
Style:   用于绘制单元格的样式名称

示例

假定DataList用于显示订单数据,我们希望对于大于5000的金额,用红底蓝字标出,对于大于4000的金额,用蓝底白字标出。

首先在窗口的AfterLoad事件中设置代码,增加两个样式:

Dim dst As WinForm.DataList = e.Form.Controls("DataList1")
dst.AddUserStyle(
"a",Color.Red,Color.Blue)
dst.AddUserStyle(
"b",Color.Blue,Color.White)

然后将DataList的DrawCell事件设为:

If e.ColName = "金额" Then
    Dim Val As Double = e.DataRow("金额")
    if
Val > 5000
Then
        e.Style =
"a"
   
ElseIf Val > 4000 Then
        e.Style=
"b"
   
End If
End
If


此主题相关图片如下:drawcell.jpg
按此在新窗口浏览图片
这是我按帮助做的
[此贴子已经被作者于2009-5-15 14:29:53编辑过]

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


加好友 发短信
等级:幼狐 帖子:130 积分:874 威望:0 精华:0 注册:2008/8/31 21:32:00
  发帖心情 Post By:2009/5/15 14:55:00 [只看该作者]

谢谢杨版回复。你给出的例子是在DataList控件中DrawCell事件的设置。我希望得到在Table中DrawCell事件的设置。

在帮助中只介绍了用“表相关—其他—自定义样式”的方法添加自定义样式,然后在Table中DrawCell事件用e.Style = ... 来做。

我想如果能用代码来编写自定义样式的话,就不必通过“表相关—其他—自定义样式”去一个一个的设置自定义样式。

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/5/15 15:02:00 [只看该作者]

别在DrawCell事件中定义样式,你可以在项目的AfterOpenProject事件,窗口的AfterLoad,甚至一个生成Table的按钮代码中,等等合适的地方定义自定义样式。


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


加好友 发短信
等级:幼狐 帖子:130 积分:874 威望:0 精华:0 注册:2008/8/31 21:32:00
  发帖心情 Post By:2009/5/15 15:10:00 [只看该作者]

以下是引用狐狸爸爸在2009-5-15 15:02:00的发言:

别在DrawCell事件中定义样式,你可以在项目的AfterOpenProject事件,窗口的AfterLoad,甚至一个生成Table的按钮代码中,等等合适的地方定义自定义样式。


谢谢指点。那该怎么写,帮助中找不到相关的语法做参考。


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/5/15 15:14:00 [只看该作者]

对了,是没有通过代码管理样式的功能,我抽空加上去吧

图片点击可在新窗口打开查看

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


加好友 发短信
等级:幼狐 帖子:130 积分:874 威望:0 精华:0 注册:2008/8/31 21:32:00
  发帖心情 Post By:2009/5/15 15:18:00 [只看该作者]

以下是引用狐狸爸爸在2009-5-15 15:14:00的发言:
对了,是没有通过代码管理样式的功能,我抽空加上去吧

图片点击可在新窗口打开查看


图片点击可在新窗口打开查看  希望早日放出,谢谢


 回到顶部