VS2005有谁用过啊DataGridView控件啊

duzhonghua 2008-07-10 10:10:13
VS2005有谁用过啊DataGridView控件啊

现在的问题是,我从数据库里面取数据,现在根据数据的不同,所显示单元格里面的颜色也不同,
难道我要从数据取一条改一下单元格的颜色吗,这样的话加载DataGridView的时候,
不是很慢,有没有好的解决办法


如果我是绑定DataSource 的话,又当如何设置颜色呢
...全文
136 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzuomin 2008-07-11
  • 打赏
  • 举报
回复
恩,用 CellPainting 可以实现。
bfblang 2008-07-10
  • 打赏
  • 举报
回复
DataGridView属性中好像有设置奇数行的颜色啊,大概是,看看。
jedliu 2008-07-10
  • 打赏
  • 举报
回复
当然,遍历的时候有个小技巧!
比如是否,你可以做一个枚举:
public enum BoolEnumer
{
是,否
}

当你判断的时候就可以这样做:
int isPublic = 0;
string strPublic = ((BoolEnumer)isPublic).ToString();
这样就不要使用switch等来做,会稍稍提高点效率!
jedliu 2008-07-10
  • 打赏
  • 举报
回复
没什么简单的方法,既然是对单元格的,你必须对所有的进行遍历!
唯一快点的是用DataList而不是GridView,用DataList你可以在HTML里通过
<div class="<%=(判断是否的方法)%>==0?classForRed:classForBlue"></div>
这种方式来做!
duzhonghua 2008-07-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 chinaicm 的回复:]
在DataRowBound事件里,对每个单元格都可以进行操作.设置背景色一定可以.
[/Quote]

不好意思,你能举个小例子么
duzhonghua 2008-07-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 chengqscjh 的回复:]
你在进行数据邦定加载的时候对数据进行判断,进而改变DataGridView中单元格颜色的属性设置
[/Quote]

这样加载个DataGridView控件,效率不高啊
duzhonghua 2008-07-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ztb 的回复:]
考察两个问题:
1、数据不同体现在什么地方,能否从中定义比较普遍的规则。
2、DataGridView的属性设置,应该支持单元格颜色改变。

使用DataSource绑定数据后,可写一个处理DataGridView的style的过程,原始的思路是行、列遍历,应用规则设置颜色,当然,如果你的规则具有普遍性,能归纳和集中使用,则循环的次数将减少,效率将提高,一句话,要分析数据的不同并抽象出规则!
[/Quote]


数据是有规律的,比如
1 对应 红色
2 对应 白色
3 对应 蓝色

代码应该怎么实现,我的意思如何减少他的循环的次数,谢谢你了,初学者,呵呵,帮帮忙,

讲讲减少代码的思路,或者贴少量的代码更好
chinaicm 2008-07-10
  • 打赏
  • 举报
回复
在DataRowBound事件里,对每个单元格都可以进行操作.设置背景色一定可以.
ejoe313 2008-07-10
  • 打赏
  • 举报
回复
先绑定DataSource,
然后循环DataGridView,在需要改变颜色的地方用DefaultCellStyle.BackColor属性
chengqscjh 2008-07-10
  • 打赏
  • 举报
回复
你在进行数据邦定加载的时候对数据进行判断,进而改变DataGridView中单元格颜色的属性设置
张张好 2008-07-10
  • 打赏
  • 举报
回复
考察两个问题:
1、数据不同体现在什么地方,能否从中定义比较普遍的规则。
2、DataGridView的属性设置,应该支持单元格颜色改变。

使用DataSource绑定数据后,可写一个处理DataGridView的style的过程,原始的思路是行、列遍历,应用规则设置颜色,当然,如果你的规则具有普遍性,能归纳和集中使用,则循环的次数将减少,效率将提高,一句话,要分析数据的不同并抽象出规则!

duzhonghua 2008-07-10
  • 打赏
  • 举报
回复
谢谢大家
duzhonghua 2008-07-10
  • 打赏
  • 举报
回复
我的代码如下:

 Private Sub dgvUserList_CellPainting(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) Handles dgvUserList.CellPainting
Dim temp As String = e.Value
Select Case temp
Case "男"
e.CellStyle.BackColor = Color.DarkSeaGreen
Case "女"

e.CellStyle.BackColor = Color.Pink
End Select
End Sub
duzhonghua 2008-07-10
  • 打赏
  • 举报
回复
其实不需要遍历的


 Private Sub DataGridView1_CellPainting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) Handles DataGridView1.CellPainting
' 这边你可以根据你的不同进行判断,从而设置颜色即可

end sub
HAVENT 2008-07-10
  • 打赏
  • 举报
回复
是根据数据类型还是根据数据内容不同改变颜色?

不过不管是什么方式,遍历循环是不可避免的,关键看你在哪个事件中处理才能减少重复遍历
fishidea 2008-07-10
  • 打赏
  • 举报
回复
如果要按数据来判断datagridview单元格显示的不同色,只能一个个修改的.....

16,722

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧