社区
C#
帖子详情
请问如何根据datagrid中的一列的值改变行的颜色
lovefootball
2005-04-13 01:37:06
在c#,winform下,有一个datagrid,根据其中一列,比如大于20的时候,要这行都显示成红色,怎么弄啊~~~~~~~~~
...全文
259
14
打赏
收藏
请问如何根据datagrid中的一列的值改变行的颜色
在c#,winform下,有一个datagrid,根据其中一列,比如大于20的时候,要这行都显示成红色,怎么弄啊~~~~~~~~~
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xubinhui
2005-04-15
打赏
举报
回复
支持ListView
S.F.
2005-04-13
打赏
举报
回复
hamadou(闵峰) 说的更好,我自己写的datagrid扩展组件也扩展了datagridtextboxclomn,但没有这样设计;
lovefootball
2005-04-13
打赏
举报
回复
to hamadou(闵峰)
vb.net的代码帮忙贴一下啊,我可以自己转,谢谢啊
hamadou
2005-04-13
打赏
举报
回复
可以使用一个事件关联参数e(继承自eventargs),该类包括调整列显示的颜色(背景色,前景色),行号,列名称等。给它加一个构造函数,让其初试化这些字段。
继承datagridtextboxclomn写一个用户控件,在 这个控件里加一个事件(以sender,e作为参数,其中这个参数e 就是上面的继承自eventargs的类实例),在onpaint事件里响应该事件。触发时要新建立一个参数e,作为传递的参数。在base.onpaint时,使用创建了的e的各个对应的属性作为参数。
在程序中委托这个事件,对e的各个参数相应的修改。要区别是哪行对应的datagridcolumn影响的,可以通过e的一个属性(例如字段名)来实现。为了是一行能改变,要在e中建立一个参数“行号”,该属性要在构造函数中初始化。不知道你明白了没有。呵呵。我对c#不熟悉,代码是vb.net的。所以没有贴出来。你自己按照这个思路试验一下吧!希望对你有帮助。
lovefootball
2005-04-13
打赏
举报
回复
谢谢S.F.(吃青春饭的)
这么麻烦啊,有什么简单的办法么?那还不如用listview呢。
S.F.
2005-04-13
打赏
举报
回复
这样即可;不过你得继承datagrid组件,重写OnPaint事件,具体实现如下;
public class DataGridEx : DataGrid
{
..........
protected override void OnPaint(PaintEventArgs e){
base.OnPaint(e);//继承原始绘制动作
System.Windows.Forms.DataGrid.HitTestInfo myHitTest;
myHitTest = this.HitTest(e.ClipRectangle.X,e.ClipRectangle.Y);
//检查是否为cell
if(myHitTest.Type==System.Windows.Forms.DataGrid.HitTestType.Cell){
try{
//这里myHitTest.Row Column 分别表示行和列的索引你可以取得值写判断了
string s = dataGrid[myHitTest.Row,myHitTest.Column].ToString();
//下面是绘制动作
RectangleF ef1;
Rectangle rectangle1 = this.GetCellBounds(myHitTest.Row,myHitTest.Column);
SolidBrush brush1 = new SolidBrush(this.dataGrid.BackColor);
StringFormat format1 = new StringFormat();
brush1.Color = this.dataGrid.BackColor;
e.Graphics.FillRectangle(brush1, rectangle1);
brush1.Color = Color.Red;
ef1 = new RectangleF((float) rectangle1.X, (float) (rectangle1.Y + 2), (float) rectangle1.Width, (float) (rectangle1.Height - 2));
e.Graphics.DrawString(s,dataGrid.Font,brush1,ef1,format1);
}catch{;}
}
该代码是从我自己写的dataGrid扩展组件内复制来的。希望你可以解决问题。
lovefootball
2005-04-13
打赏
举报
回复
to dutguoyi(新鲜鱼排) ,谢谢先
我的datagrid怎么没有items的属性啊?
新鲜鱼排
2005-04-13
打赏
举报
回复
错了,忘了是winform。我的是在webform里。
区别不大,改一下就好了。
新鲜鱼排
2005-04-13
打赏
举报
回复
for(int i=0;i<ds.Tables[0].Rows.Count;i++)
{
string j=ds.Tables[0].Rows[i].ItemArray[0].ToString();
if(Convert.ToInt32(j)>20)
{
this.DataGrid1.Items[i].Cells[0].BackColor=Color.Black;//相应的单元格
this.DataGrid1.Items[i].BackColor=Color.Black;//相应的行
}
}
新鲜鱼排
2005-04-13
打赏
举报
回复
帮顶,马上解决。
lovefootball
2005-04-13
打赏
举报
回复
应该很简单的吧
up
S.F.
2005-04-13
打赏
举报
回复
gz
lovefootball
2005-04-13
打赏
举报
回复
怎么没人理我啊
lovefootball
2005-04-13
打赏
举报
回复
up
wpf
datagrid
单元格
颜色
根据条件
改变
颜色
例子
例如,我们可以创建一个自定义的附加属性,然后在单元格的后台代码
中
根据这个属性
改变
颜色
。 在提供的压缩包文件"
Datagrid
CellColor"
中
,很可能包含了示例代码,演示了如何实现上述的一些方法。通过学习和理解这些...
WPF
DataGrid
行
的背景色根据
行
中
某一字段的
值
来显示
WPF的
DataGrid
展示数据源数据时,需要根据某
行
中
某一字段
值
,来显示背景
颜色
。这里简单做了一个int类型的
值
,为0的时候为橙色,为1的时候为草绿色....也可以在数据源
中
添加Color列,并直接存放Color的16进制
值
,并...
C#实现
改变
DataGrid
某一
行
和单元格
颜色
的方法
在C#
中
,
改变
DataGrid
的
行
和单元格
颜色
通常涉及到对WPF的
DataGrid
控件的操作,包括数据源的绑定、
行
和单元格的获取以及样式设置。...在实际开发
中
,可以根据需求调整这些代码,例如根据数据的特定条件来动态
改变
颜色
。
Flex
DataGrid
改变
某一
行
的背景
颜色
在实际应用
中
,我们经常需要根据特定条件
改变
DataGrid
中
某一
行
的背景
颜色
,以突出显示特定数据或提供视觉反馈。本文将详细讲解如何在Flex
中
实现这一功能。 首先,我们要了解Flex
DataGrid
的基本结构。
DataGrid
由一...
flex
DataGrid
改变
指定
行
的背景
颜色
在某些情况下,我们可能需要根据特定条件
改变
DataGrid
中
的某一
行
或几
行
的背景
颜色
,以突出显示或者区分不同的数据状态。本篇文章将详细探讨如何在Flex
中
实现这一功能。 首先,我们需要理解
DataGrid
的基本结构。...
C#
111,098
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章