winform程序中的DataGrid,如何指定某一特定列的背景颜色 比如我想第一列的背景颜色为红色,除了用paint方法重写,还有什么方法,可不可以通过设定列样式来设定?
 
我的目的是令DataGrid其中的几列(这几列可以修改的)的背景色为红色,让人一眼能看见该修改那几列的数据.........

解决方案 »

  1.   

    datagrid.select 可以吗?你去试试吧
      

  2.   

    我需要的是页面LOAD出来的时候,datagrid就存在两种背景色,一部分是可以编辑的,一部分列是不可以编辑.......
     pretty_soft()可以具体说下嘛,偶还不是很明白
      

  3.   

    好象DataGrid不支持这种功能,我见过这种功能都是在第三方控件中发现的.
      

  4.   

    用paint方法重载就可以,但是比较复杂,
    我也不确定datagrid支不支持这种功能,继续关注中........
    感谢pegtop
      

  5.   

    用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);
    }
    }
      

  6.   

    参看这个例子
    http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx#q927q
      

  7.   

    这个例子我看了,谢谢Knight94
    他就是重载paint方法做的,复杂了点,
    我想尝试下有无简单点,就是不需要写重写paint,直接设置列样式可以实现的