以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 如何在DrawCell中自定义样式 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=2795)
|
-- 作者:ybtxdz
-- 发布时间:2009/5/15 13:26:00
-- 如何在DrawCell中自定义样式
假如不想用“表相关—其他—自定义样式”的方法添加自定义样式,而在表事件DrawCell中用代码自定义样式,代码该如何编写?
看到“DataList有一个AddUserStyle方法,用于向DataList添加自定义样式”后的一个想法。
|
-- 作者:yangming
-- 发布时间: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
-- 发布时间:2009/5/15 14:55:00
--
谢谢杨版回复。你给出的例子是在DataList控件中DrawCell事件的设置。我希望得到在Table中DrawCell事件的设置。
在帮助中只介绍了用“表相关—其他—自定义样式”的方法添加自定义样式,然后在Table中DrawCell事件用e.Style = ... 来做。
我想如果能用代码来编写自定义样式的话,就不必通过“表相关—其他—自定义样式”去一个一个的设置自定义样式。
|
-- 作者:狐狸爸爸
-- 发布时间:2009/5/15 15:02:00
--
别在DrawCell事件中定义样式,你可以在项目的AfterOpenProject事件,窗口的AfterLoad,甚至一个生成Table的按钮代码中,等等合适的地方定义自定义样式。
|
-- 作者:ybtxdz
-- 发布时间:2009/5/15 15:10:00
--
以下是引用狐狸爸爸在2009-5-15 15:02:00的发言:
别在DrawCell事件中定义样式,你可以在项目的AfterOpenProject事件,窗口的AfterLoad,甚至一个生成Table的按钮代码中,等等合适的地方定义自定义样式。
谢谢指点。那该怎么写,帮助中找不到相关的语法做参考。
|
-- 作者:狐狸爸爸
-- 发布时间:2009/5/15 15:14:00
--
对了,是没有通过代码管理样式的功能,我抽空加上去吧
|
-- 作者:ybtxdz
-- 发布时间:2009/5/15 15:18:00
--
以下是引用狐狸爸爸在2009-5-15 15:14:00的发言:对了,是没有通过代码管理样式的功能,我抽空加上去吧
希望早日放出,谢谢
|