C#中,如何datagridview 中某一行的字体样式、颜色?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中,如何datagridview 中某一行的字体样式、颜色?相关的知识,希望对你有一定的参考价值。

参考技术A 不好意思啊。。写的太快了。。。呵呵
。这次肯定行。。。
所有行:
dataGridView1.RowsDefaultCellStyle.Font
=
new
Font("宋体",
9,
FontStyle.Strikeout);
dataGridView1.RowsDefaultCellStyle.ForeColor
=
Color.Blue;
dataGridView1.RowsDefaultCellStyle.BackColor
=
Color.Red;
选中行
dataGridView1.SelectedRows[0].DefaultCellStyle.Font
=
new
Font("宋体",
9,
FontStyle.Strikeout);
dataGridView1.SelectedRows[0].DefaultCellStyle.ForeColor
=
Color.Blue;
dataGridView1.SelectedRows[0].DefaultCellStyle.BackColor
=
Color.Red;
看看是不是你要的效果。。。
参考技术B 在DataGridView事件中有个CellFormating事件里面写代码可以实现,利用参数E。
if
(e.ColumnIndex
>=
3
&&
e.ColumnIndex
<=
ds.Tables["汇总表"].Columns.Count
-
2)

if
(double.Parse(e.Value.ToString())
<
60)

e.CellStyle.ForeColor
=
Color.Red;
e.CellStyle.Font
=
new
Font("宋体",
12,
FontStyle.Underline
|
FontStyle.Bold);

if
(double.Parse(e.Value.ToString())
>=
90
&&
double.Parse(e.Value.ToString())
<=
100)

e.CellStyle.Font
=
new
Font("宋体",
12,
FontStyle.Underline
|
FontStyle.Bold);
e.CellStyle.ForeColor
=
Color.Blue;


给个邮箱地址我发给你看看
郁闷,那你自己试试吧!可能换是不行

C#如何获取datagridview中某一整列的数据。

我现在有一堆数据,约5000个。

问题:
(1)现在,我想获取MAC号那列的所有数据作为一个集合,该怎么获取。
(2)获取到整列数据后,如何进行判断是否有相同的MAC号比较快速,用foreach吗。
如果有其他比较快速的方法,请指点一下。

三种方案:一种去sql语句去写,第二种就是循环做,没别的办法,5000条数据并不多,循环也是很快的。第三觉得用linq也是可以做的。
建议用循环做,比较清晰。
参考技术A 你的 datagridview 数据源是什么呢?追问

execl的。从execl里面获取的数据。

追答List<string> listMac = new List<string>();
foreach (DataGridViewRow item in this.dataGridView1.Rows)

    string tempMac = item.Cells[2].Value.ToString();//假设你的mac列在第二列
    if (!listMac.Contains(tempMac))
    
        listMac.Add(tempMac);
    
    else
    
        MessageBox.Show("重复mac");
    

追问

按照你的方法,查重通过了。我现在还有2个疑问。就是漏号与错序查询。

漏号:即00231F318352(假设在第0行第1列)与00231F318354(假设第1行第2列)之间有一个MAC号(00231F318353)没有这样的情况。

错序:即在第i行第1列的MAC号比第i+1行的MAC号大的情况。

这两个查询该如何弄呢。我给你加分。

追答

漏号,你的不同列数据怎么比????

你数据放进datagridview后是否排序好了?字符串比较可以用下面的方法
int result = string.Compare(strA,strB,false);
//返回1,strA比strB大;
//返回0,strA等于strB;
//返回-1,strA比strB小;

追问

打错了,是相邻行同列的数据。

追答

这个弄起来就有点麻烦咯

追问

嗯。还是感谢你。按照你的思路,把错序解决了。漏号我就自己再琢磨下。给你加分哈。

本回答被提问者采纳

以上是关于C#中,如何datagridview 中某一行的字体样式、颜色?的主要内容,如果未能解决你的问题,请参考以下文章

C#如何获取datagridview中某一整列的数据。

C# Winform中 选中DatagridView控件中某行如何将该行某个字段(1,2,3,4,)的值绑定CheckedListBox控件的数

如何获得DataGridView中某一列中全部的值?

请教一下,C#,我现在用datagridview中某一单元格操作另一个datagridview,请问思路是怎样的呢?

C# winform程序中如何向datagridview中添加一行

怎么给DataTable中某一行设置颜色