winform程序中的DataGrid,如何指定某一特定列的背景颜色 winform程序中的DataGrid,如何指定某一特定列的背景颜色 比如我想第一列的背景颜色为红色,除了用paint方法重写,还有什么方法,可不可以通过设定列样式来设定? 我的目的是令DataGrid其中的几列(这几列可以修改的)的背景色为红色,让人一眼能看见该修改那几列的数据......... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 datagrid.select 可以吗?你去试试吧 我需要的是页面LOAD出来的时候,datagrid就存在两种背景色,一部分是可以编辑的,一部分列是不可以编辑....... pretty_soft()可以具体说下嘛,偶还不是很明白 好象DataGrid不支持这种功能,我见过这种功能都是在第三方控件中发现的. 用paint方法重载就可以,但是比较复杂,我也不确定datagrid支不支持这种功能,继续关注中........感谢pegtop 用DataGridTableStyle,在加绑定DataGridTextBoxColumn时,赋值DataGridTextBoxColumn的ReadOnly 为True。可以参考下面代码:private void SetGrdCaption(DataGrid Grd,DataTable dt,string[] sCaption) { int i=0; int iFontSize = Convert.ToInt32(Grd.Font.Size); DataGridTextBoxColumn[] tc= new DataGridTextBoxColumn[sCaption.Length]; DataGridTableStyle dts=new DataGridTableStyle(); if (dt.Columns.Count>0) { foreach (DataColumn dc in dt.Columns) { tc[i] = new DataGridTextBoxColumn(); tc[i].MappingName = dc.ColumnName; tc[i].HeaderText = sCaption[i]; tc[i].Width = (this.GetColMaxWidth(dc.ColumnName)+2)*iFontSize; dts.GridColumnStyles.Add(tc[i]); i = i+1; } Grd.TableStyles.Clear(); Grd.TableStyles.Add(dts); } } 参看这个例子http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx#q927q 这个例子我看了,谢谢Knight94他就是重载paint方法做的,复杂了点,我想尝试下有无简单点,就是不需要写重写paint,直接设置列样式可以实现的 【求助】在同一个图里做一个堆积图和折线图的叠加,怎么弄? asp.net 设置程序快捷方式图标 请问一个关于C#打包的问题 一个2d graphic engine应该包含哪些组件和功能,应该怎样设计? 大家一定要帮我啊,listview的显示问题 新手求助%>_<%!窗体嵌入功能 关于 c#.net 中的sock类 的问题求助 ***从Excel文件中导入数据*** 征询Lutz' Roeder 写的Reflector源代码 关于XML流的处理,急!!!!请各位帮忙 高手请进 winform datagrid 行标头显示内容
pretty_soft()可以具体说下嘛,偶还不是很明白
我也不确定datagrid支不支持这种功能,继续关注中........
感谢pegtop
可以参考下面代码:
private void SetGrdCaption(DataGrid Grd,DataTable dt,string[] sCaption)
{
int i=0;
int iFontSize = Convert.ToInt32(Grd.Font.Size);
DataGridTextBoxColumn[] tc= new DataGridTextBoxColumn[sCaption.Length];
DataGridTableStyle dts=new DataGridTableStyle();
if (dt.Columns.Count>0)
{
foreach (DataColumn dc in dt.Columns)
{
tc[i] = new DataGridTextBoxColumn();
tc[i].MappingName = dc.ColumnName;
tc[i].HeaderText = sCaption[i];
tc[i].Width = (this.GetColMaxWidth(dc.ColumnName)+2)*iFontSize;
dts.GridColumnStyles.Add(tc[i]);
i = i+1;
}
Grd.TableStyles.Clear();
Grd.TableStyles.Add(dts);
}
}
http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx#q927q
他就是重载paint方法做的,复杂了点,
我想尝试下有无简单点,就是不需要写重写paint,直接设置列样式可以实现的