http://dotnet.aspx.cc/ShowDetail.aspx?id=9EBB267B-E69D-460F-B4C7-BE08CA290C0F

解决方案 »

  1.   

    //绑定数据源
    datagrid_bgjj.DataSource = dg_ds.Tables["bgjj"].DefaultView;
    //设置显示风格
    DataGridTableStyle dgts = new DataGridTableStyle();
    dgts.MappingName = "bgjj" ;
    dgts.ReadOnly  = false ;
    DataGridTextBoxColumn aColumnTextColumn ;
    int rowcount;
    rowcount = dg_ds.Tables["bgjj"].Columns.Count;
    DataSet ds_columnlabel;
    //定义一个具有boolean类型的列
    dg_ds.Tables["bgjj"].Columns.Add("选择");
    DataGridBoolColumn dgbc = new DataGridBoolColumn();
    dgbc.HeaderText = "选择";
    dgbc.MappingName = "选择";
    dgbc.FalseValue = 0;
    dgbc.TrueValue = 1;
    dgbc.ReadOnly  = false;
    dgbc.AllowNull = true;
    dgts.GridColumnStyles.Add(dgbc);
    for (int i = 0; i < rowcount - 1;i++)
    {
    //获取中文列名
    ds_columnlabel = new DataSet();
    SqlDataAdapter columnlabel_sqldataAdapter = new SqlDataAdapter("select pbc_labl,g_visible  from sys_lantop where pbc_cnam ='" + dg_ds.Tables["bgjj"].Columns[i].ColumnName + "' order by g_no " ,sqlConnection1);
    try
    {
    sqlConnection1.Open();
    columnlabel_sqldataAdapter.Fill(ds_columnlabel,"columnlabel");
    }
    finally
    {
    sqlConnection1.Close();
    }
    aColumnTextColumn = new DataGridTextBoxColumn();
    aColumnTextColumn.MappingName = dg_ds.Tables["bgjj"].Columns[i].ColumnName;//绑定列
    aColumnTextColumn.NullText = "空";//空字符处理
    aColumnTextColumn.HeaderText = ds_columnlabel.Tables[0].Rows[0]["pbc_labl"].ToString();//设置列名
    aColumnTextColumn.TextBox.ReadOnly = true;
    aColumnTextColumn.TextBox.WordWrap = true;
    aColumnTextColumn.TextBox.AutoSize = true;//让列宽根据数据内容自适应调整
    dgts.PreferredColumnWidth = aColumnTextColumn.TextBox.Width;
    if (dg_ds.Tables["bgjj"].Columns[i].ColumnName == "dwlabel") 
    {
    dgts.PreferredColumnWidth = 150;
    }
    if( int.Parse(ds_columnlabel.Tables[0].Rows[0]["g_visible"].ToString().Trim()) == 0)
    {
    dgts.PreferredColumnWidth = 0;
    }
    dgts.AlternatingBackColor = Color.LightGray;//设定交替行的背景色
    dgts.GridColumnStyles.Add(aColumnTextColumn);
    }
    //自定义列宽
    // dgts.PreferredColumnWidth = 100;
    //隐藏列
    // dgts.PreferredColumnWidth = 0;
    datagrid_bgjj.TableStyles.Add(dgts);
    datagrid_bgjj.Visible = true ;
    lv_bgjj.Visible = false ;
      

  2.   

    winForm 可以参考这个
    /// <summary>
    /// 设置DataGrid样式
    /// </summary>
    public static void InitDataGridHeader(DataGrid dg,string[] mColumnsName,string[] mColumnsHeader,float[] mColumnsWidth)
    {
    if(mColumnsName.Length != mColumnsHeader.Length || mColumnsHeader.Length != mColumnsWidth.Length)
    {
    Common.ShowMsg("系统错误:输入参数不正确,请联系系统开发人员");
    return;
    } dg.TableStyles.Clear();
    DataGridTableStyle myStyle = new DataGridTableStyle();
    dg.TableStyles.AddRange(new DataGridTableStyle[]{myStyle});
    myStyle.DataGrid = dg; for(int i=0;i<mColumnsName.Length;i++)
    {
    DataGridTextBoxColumn tmpColumn = new DataGridTextBoxColumn();
    tmpColumn.Format = "";
    tmpColumn.FormatInfo = null;
    tmpColumn.HeaderText = mColumnsHeader[i];
    tmpColumn.MappingName = mColumnsName[i];
    tmpColumn.Width  =  Convert.ToInt32(mColumnsWidth[i] * Common.MySettings.myFontSize / 10.5F);
    myStyle.GridColumnStyles.Add(tmpColumn);
    }//end of for(int i=0;i<mColumnsName.Length;i++)

    myStyle.HeaderForeColor = SystemColors.ControlText;
    myStyle.MappingName = dg.DataMember;
    myStyle.AlternatingBackColor = Color.Azure;//Color.SeaShell;
    myStyle.GridLineStyle = DataGridLineStyle.Solid;
    myStyle.GridLineColor = SystemColors.Control;
    myStyle.HeaderBackColor = SystemColors.ControlLight;
    myStyle.HeaderFont = new Font(Common.MySettings.myFontName,9F,FontStyle.Bold, GraphicsUnit.Point, ((System.Byte)(134)));

    dg.Font = Common.MySettings.myFont;
    dg.AllowSorting = false;
    dg.TableStyles[0].AllowSorting = false;
    dg.ReadOnly = true;
    //dg.CaptionVisible = false;
    }
      

  3.   

    winForm
    //隐藏dataGridOrder的id列
    DataGridTableStyle ts = new DataGridTableStyle(true);
    ts.MappingName = this.dS1.Tables[0].TableName;
    this.dataGrid1.TableStyles.Clear();
    this.dataGrid1.TableStyles.Add(ts);
    ts.GridColumnStyles["ID"].Width=0;