C#中关于DataGridView行和列的背景色-前景色设置

关于DataGridView行和列的背景色-前景色设置

1.设定DataGridView全部单元格的Style
  DataGridView内所有单元格的Style变更,可以使用DataGridView对象的DefaultCellStyle属性实现。


1

2

3

4

5

//包含Header所有的单元格的背景色为黄色

DataGridView1.DefaultCellStyle.BackColor = Color.Yellow;

//包含Header所有的单元格的前景色为黄色

DataGridView1.DefaultCellStyle.ForeColor= Color.Yellow; //前景色设置,只需要将BackColor改为ForeColor即可

2.DataGridView.DefaultCellStyle属性可以对包含Header所有单元格的Style进行变更设定,对除 Header以外所  有单元格的Style进行变更,可以使用DataGridView.RowsDefaultCellStyle属性实现


1

2

// Header以外所有的单元格的背景色为黄色

DataGridView1.RowsDefaultCellStyle.BackColor = Color.Yellow;

3.变更某一个单元格的Style
  DataGridViewCell.Style属性可以对单一的单元格的Style进行变更设定。
  如下面的例子,只对(0, 0)单元格的背景色设定为粉红色。


1

2

//(0, 0)单元格的背景色为粉色

DataGridView1[0, 0].Style.BackColor = Color.Pink;

4.变更被指定的列、行的单元格的Style
  DataGridViewColumn.DefaultCellStyle属性,可以对列的单元格Style进行变更设定。  DataGridViewRow.DefaultCellStyle属性,可以对行的单元格Style进行变更设定。
  如下面的例子,第一列的单元格的背景色为淡蓝色,第一行的单元格的背景色为淡灰色。


1

2

3

4

5

//索引0列的单元格的背景色为淡蓝色

DataGridView1.Columns[0].DefaultCellStyle.BackColor = Color.Aqua;

//索引0行的单元格的背景色为淡灰色

DataGridView1.Rows[0].DefaultCellStyle.BackColor = Color.LightGray;

5.变更奇数行的单元格Style
  DataGridView.AlternatingRowsDefaultCellStyle属性,可以变更DataGridView的奇数行的单元格 Style。
  如下面的例子,奇数行的单元格的背景色设定为黄绿色


1

2

//奇数行的单元格的背景色为黄绿色

DataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.GreenYellow;

6.变更列Header、行Header的单元格Style
  列Header的单元格style的变更,可以使用,DataGridView.ColumnHeadersDefaultCellStyle属性实现。行  Header的单元格Style的变更,可以使用DataGridView.RowHeadersDefaultCellStyle属性实现。但是,Header  的是左侧的单元格需要通过DataGridView.TopLeftHeaderCell属性,取得的DataGridViewHeaderCell对象的单    元格Style进行设定。
  如下面的例子,列Header的背景色为象牙色,行Header的背景色为橙色。


1

2

3

4

5

//列Header的背景色为象牙色

DataGridView1.ColumnHeadersDefaultCellStyle.BackColor = Color.Ivory;

//行Header的背景色为橙色

DataGridView1.RowHeadersDefaultCellStyle.BackColor = Color.Lime;

补充:每个Header单元格的单元格Style,可以使用这一些的方法取得,和一般的单元格一样,可以使用Style   属性变更,简而言之,就是个可以对每个单元格进行个性化设置。

关于优先顺序

设定单元格Style的属性有优先顺序的。顺序从高到低如下所示。
  1). DataGridViewCell.Style 
  2). DataGridViewRow.DefaultCellStyle 
  3). DataGridView.AlternatingRowsDefaultCellStyle 
  4). DataGridView.RowsDefaultCellStyle 
  5). DataGridViewColumn.DefaultCellStyle 
  6). DataGridView.DefaultCellStyle
  接下来是Header的单元格Style属性的优先顺序。
  1). DataGridViewCell.Style 
  2). DataGridView.RowHeadersDefaultCellStyle 
  3). DataGridView.ColumnHeadersDefaultCellStyle 
  4). DataGridView.DefaultCellStyle
  单元格本身的设定的Style是最优先的。

privatevoid dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
  int index = CardCMD.PublicInfoCom.GetLendRecordIndex();
  if (index ==0)
  {
    this.dataGridView1.Rows[0].DefaultCellStyle.BackColor = Color.Red;
    this.dataGridView1.Rows[0].Selected =false;
    this.dataGridView1.Rows[1].DefaultCellStyle.BackColor = Color.Wheat;
    this.dataGridView1.Rows[2].DefaultCellStyle.BackColor = Color.Wheat;
  }
  else if (index ==1)
  {
    this.dataGridView1.Rows[1].DefaultCellStyle.BackColor = Color.Red;
    this.dataGridView1.Rows[0].Selected =false;
    this.dataGridView1.Rows[0].DefaultCellStyle.BackColor = Color.Wheat;
    this.dataGridView1.Rows[2].DefaultCellStyle.BackColor = Color.Wheat;
  }
  else if (index ==2)
  {
    this.dataGridView1.Rows[2].DefaultCellStyle.BackColor = Color.Red;
    this.dataGridView1.Rows[0].Selected =false;
    this.dataGridView1.Rows[0].DefaultCellStyle.BackColor = Color.Wheat;
    this.dataGridView1.Rows[1].DefaultCellStyle.BackColor = Color.Wheat;
  }
}
privatevoid rowMergeView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
  //updateview();
  for (int i =0; i <this.rowMergeView1.Rows.Count; i++)
  {
    try
    {
      this.rowMergeView1.Rows[i].DefaultCellStyle.BackColor = Color.FromName(softcolor[this.rowMergeView1.Rows[i].Cells["yujing"].Value.ToString()]);
    }
    catch (Exception ex)
    {
      new FileOper().writelog(ex.Message);
    }
  }
} 

原文地址:https://www.cnblogs.com/lgx5/p/8835253.html

时间: 2024-10-11 05:27:39

C#中关于DataGridView行和列的背景色-前景色设置的相关文章

WinForm设置DataGridView某些行和列只读

WinForm设置DataGridView某些行和列的只读 列只读设置比较容易,行只读设置要求将SelectionMode设置为CellSelect,EditMode设置为EditOnEnter . '--DataGridView1控件的初始化设置(在数据绑定前设置,load事件中) Private Sub InitDataGrid1() Me.GridView1.ReadOnly = False '设置非只读 Me.GridView1.SelectionMode = DataGridViewS

c语言:将一个二维数组行和列的元素互换,存到另一个二维数组中。

将一个二维数组行和列的元素互换,存到另一个二维数组中. 解:程序: #include<stdio.h> int main() { int i, j, a[2][3] = { {1,2,3},{4,5,6} },b[3][2]; printf("array a:\n"); for (i = 0; i <=1; i++)//处理a数组中的一行中各元素 { for (j = 0; j <= 2; j++)//处理a数组中的某一列元素 { printf("%5

将一个二维数组的行和列的元素互换,存到另一个二维数组中。

#include<stdio.h> int main() { int a[][3]={{1,2,3},{4,5,6},{6,9,7}};     int b[3][3],i,j;       printf("array a:\n");   for(i=0;i<=2;i++)       //处理数组中的一行中的各元素   {      for(j=0;j<=2;j++)     //处理a中的某一列的元素   {    printf("%5d"

在WinForm中打印DataGridView

PrintDataGridView.cs using System;using System.Collections.Generic;using System.Text;using System.Drawing;using System.Data;using System.Data.SqlClient;using System.Drawing.Printing;using System.Windows.Forms; namespace ManagerBLL{ public class Print

示例-创建表格-指定行列&amp;删除表格的行和列

<body> <script type="text/javascript"> /* *上面的方法和你麻烦.*既然操作的是表格,*那么最方便的方式就是使用表格节点对象的方法.* *表格是由行组成.表格节点对象中insertRow方法就完成了创建行并添加的动作.* *行是有单元格组成.通过tr节点对象的insertCell来完成.*/function crtTable(){ var oTabNode = document.createElement("ta

javascript动态创建表格:新增、删除行和列

转载:http://www.cnblogs.com/pato/archive/2009/09/02/1559068.html 利用js来动态创建表格有两种格式,appendChild()和insertRow.insertCell().两种方式其实差不多,但第一种有可能在IE上有问题,所以推荐大家使用第二种了,直接说吧. 1.inserRow()和insertCell()函数 insertRow()函数可以带参数,形式如下: insertRow(index):index从0开始 这个函数将新行添加

.NET WinForm程序中给DataGridView表头添加下拉列表实现数据过滤

转:http://www.cnblogs.com/jaxu/archive/2011/08/04/2127365.html 我们见过Excel中的数据过滤功能,可以通过点击表头上的下拉列表来实现数据的过滤,这个功能很实用,省去了我们需要在程序中单独设计数据的查询过滤模块,功能直接依赖于数据绑定控件DataGridView.先来看看Excel中的数据过滤功能. 要想在DataGridView中实现类似于Excel的这种功能其实也并非难事.来看看msdn上的一篇文章,上面有详细的介绍,不过目前只有全

delphi7 获取dbgrid指定行和列以及取得相应的数据

取得dbgrid选中行的行号 DBGrid2.DataSource.DataSet.RecNo 取得dbgrid选中行指定列的数据 DBGrid2.Fields[0].Value;//第一列 DBGrid2.Fields[1].Value;//第二列 网上有种说法是 假如你用的是 adoquery1那就是adoquery1.fields[0].asstring 如果要取第2列的值,那就是adoquery1.fields[1].asstring 依次类推 如果你用的是 adotable1那就是 a

datagridview 行高列宽的自动设置

1) 设定行高和列宽自动调整 [C#]// 设定包括Header和所有单元格的列宽自动调整 DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; // 设定包括Header和所有单元格的行高自动调整 DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells; AutoSizeColumnsMode 属性的设定值枚