社区
C#
帖子详情
请问如何根据datagrid中的一列的值改变行的颜色
lovefootball
2005-04-13 01:37:06
在c#,winform下,有一个datagrid,根据其中一列,比如大于20的时候,要这行都显示成红色,怎么弄啊~~~~~~~~~
...全文
311
14
打赏
收藏
请问如何根据datagrid中的一列的值改变行的颜色
在c#,winform下,有一个datagrid,根据其中一列,比如大于20的时候,要这行都显示成红色,怎么弄啊~~~~~~~~~
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用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
python标准库之zipfile
python标准库zipfile 什么是zip文件?为何在网络上zip打包的文件比较常见?而不是rar? zip是一种压缩归档的文件,zip开源的。 python的zipfile模块,有两个主要的类 ZipFile() 函数,判断是否为zip类型文件 zipfile.is_zipfile(filename) Returns True if filename...
14Python标准库系列之zipfile模块
Python标准库系列之zipfile模块 The ZIP file format is a common archive and compression standard. This module provides tools to create, read, write, append, and list a ZIP file. This mod...
python zipfile_python标准库学习之zipfile模块
ZipFile模块里有两个非常重要的class, 分别是 ZipFile和ZipInfo。ZipFile是主要的类,用来创建和读取zip文件,而ZipInfo是存储的zip文件的每个文件的信息的。class zipfile.ZipFile(file[, mode[, compression[, allowZip64]]])file:zip文件名(包含路径)mode:r,w,acompression...
Python标准库
中
的zipfile
例如在E盘的demo目录下面存在下述三个文件: 将demo目录进
行
压缩后,在E盘的跟目录下面就会多了一个demo.zip文件 如果我们想获取demo.zip压缩文件里面的上述三个文件,在已知文件路径的情况下可以采用Python标准库
中
的zipfile模块
中
的ZipFile读取zip压缩文件,如下图所示: import zipfile from io import BytesIO def demo(): """根据文件的全路径打开一个ZIP压缩文件""" with zipfi
python常用标准库(压缩包模块zipfile和tarfile)
在我们常用的系统和系统
中
有很多支持的压缩包格式,包括但不限于以下种类:、、,以下的标准库的作用就是用于压缩解压缩其
中
一些格式的压缩包。模块操作压缩包使用类进
行
操作,使用方法和的使用方法很相似,也是使用、、、四种操作模式。基本步骤也是大致分为三步:打开文件、操作文件、关闭文件。可以使用with语法进
行
上下文自动操作。注意一:zipfile也是rwxa四种模式,表示也会有文件操作
中
光标指针的概念。注意二:在Python
中
,几乎所有涉及到文件相关的操作都是打开、操作、关闭三个步骤。在上面的compression参
C#
111,128
社区成员
642,534
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章