c# 如何改变datagridview里的字体颜色

Posted

tags:

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

(将datagridview放入groupbox中,改变groupbox的颜色,datagridview里的字体也变了,如何设置回原来的颜色)

两种方法,在前台和在后台略有区别:

1、前台方法

把forecolor设置为想要的颜色即可,例子中设置为红色。

<datagridview ForeColor="Red" />

2、后台方法

这里需要先对datagridview命名。把forecolor设置为想要的颜色即可,例子中设置为红色。

datagridview datagridview1=new datagridview();
dataGridView1.ForeColor = Color.Red;

参考技术A 方法1:
在groupbox中加入panel,再在panel中加入datagridview。然后设置panel的字体就能控制datagridview的字体了。
方法2:
在后台代码写上
dataGridView1.ForeColor = Color.Black;
搞定^-^本回答被提问者采纳
参考技术B 想改某行的字体颜色
this.dataGridView1.Rows[行号].Cells[列号].Style.Font或ForeColor

如何在 dataGridView C# 中设置行颜色? [复制]

【中文标题】如何在 dataGridView C# 中设置行颜色? [复制]【英文标题】:how to set rows color in dataGridView C#? [duplicate] 【发布时间】:2017-05-06 14:23:00 【问题描述】:

如果状态 =“未完成”,则行颜色应为红色。我怎样才能做到这一点? 状态字段在第 8 列中。DataGridView

String query = "select * from bug order by id desc;";
String Status = null;                     
DataTable dt = connection.retrieve(query);
for (int i = 0; i < dataGridViewDashboard.Rows.Count; i++)

    Status = dataGridViewDashboard.Rows[i].Cells[8].Value.ToString();
    if (Status == "Incomplete")
    
        dataGridViewDashboard.Rows[i].DefaultCellStyle.BackColor = Color.Red;
    
    else
    
        dataGridViewDashboard.Rows[i].DefaultCellStyle.BackColor = Color.Green;
    

【问题讨论】:

这个问题被问太多次了。你可以使用CellFormatting event MSDN 非常感谢 Pikoh。 非常感谢萨阿迪。 【参考方案1】:

你必须控制是否是新行。

    String query = "select * from bug order by id desc;";
    String Status = null;                     
    DataTable dt = connection.retrieve(query);
    for (int i = 0; i < dataGridViewDashboard.Rows.Count; i++)
    
       if (dataGridViewDashboard.Rows[i].IsNewRow)
                continue;
        Status = dataGridViewDashboard.Rows[i].Cells[8].Value.ToString();
        if (Status == "Incomplete")
        
            dataGridViewDashboard.Rows[i].DefaultCellStyle.BackColor = Color.Red;
        
        else
        
            dataGridViewDashboard.Rows[i].DefaultCellStyle.BackColor = Color.Green;
        
    

【讨论】:

非常感谢大家【参考方案2】:

您必须订阅 DataGridView 的 PrePaint 事件,您可以轻松地设置行的颜色。

  private void dataGridView1_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
if (your control here) 

    dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Red;

【讨论】:

以上是关于c# 如何改变datagridview里的字体颜色的主要内容,如果未能解决你的问题,请参考以下文章

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

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

在C# winform中怎么设置文本框中部分字体的颜色,即根据条件在编程中改变文本框中部分字体的颜色

C#中dataGridView里面的字体变色

C# 如何改变控制台输出字体颜色

C#中如何改变richtextbox中已选择部分的字体和颜色?