<HeaderStyle BackColor="#FFDBB4" Height="22"></HeaderStyle>
<ItemStyle HorizontalAlign="Left" Width="95px"></ItemStyle>
 就这样,你自己看看吧

解决方案 »

  1.   

    一个刷新dataGrid 的方法,自己看看public static void RefreshDataGrid(System.Windows.Forms.DataGrid DG, System.Data.DataView DV, string m_strWidth, string m_strHidden, bool m_blnIsReDraw)
    {
    try
    {
    int i;
    int numCols;
    System.Windows.Forms.DataGridTableStyle ts = new System.Windows.Forms.DataGridTableStyle(); //就是它决定了datagrid是什么样的
    System.Windows.Forms.DataGridTextBoxColumn aColumnTextColumn; //要重写的东东
    System.Windows.Forms.DataGridBoolColumn aColumnBoolColumn; //要重写的东东 string[] ColumnWidths = m_strWidth.Split(';');
    string[] strHiddens = m_strHidden.Split(';'); numCols = DV.Table.Columns.Count; if (m_blnIsReDraw == true)
    {
    foreach(string strHiddenTemp in strHiddens)
    {
    if (strHiddenTemp.Length > 0)
    {
    DV.Table.Columns[strHiddenTemp].ColumnMapping = System.Data.MappingType.Hidden;
    }
    } DG.Font = new System.Drawing.Font("宋体",10,System.Drawing.FontStyle.Regular);
    } DG.DataSource = DV; if (m_blnIsReDraw == true)
    {
    ts.MappingName = DV.Table.TableName; for(i=0;i<numCols;i++) // 重绘所有的列
    {
    switch (DV.Table.Columns[i].DataType.Name)
    {
    case "Boolean": //bool Column
    aColumnBoolColumn =new System.Windows.Forms.DataGridBoolColumn();
    //要更改列头名,请改下句的HeaderText值
    aColumnBoolColumn.HeaderText = DV.Table.Columns[i].ColumnName;
    aColumnBoolColumn.MappingName = DV.Table.Columns[i].ColumnName; if (ColumnWidths.Length > i)
    {
    aColumnBoolColumn.Width = (int) (Convert.ToDouble(ColumnWidths[i]) * 50);
    } ts.GridColumnStyles.Add(aColumnBoolColumn); //增加一种自定义的column风格 break; default: //Default (Text) Column
    aColumnTextColumn =new System.Windows.Forms.DataGridTextBoxColumn();
    //要更改列头名,请改下句的HeaderText值
    aColumnTextColumn.HeaderText = DV.Table.Columns[i].ColumnName;
    aColumnTextColumn.MappingName = DV.Table.Columns[i].ColumnName; if (ColumnWidths.Length > i)
    {
    aColumnTextColumn.Width = (int) (Convert.ToDouble(ColumnWidths[i]) * 50);
    } ts.GridColumnStyles.Add(aColumnTextColumn); //增加一种自定义的column风格 break;
    }
    }
    DG.TableStyles.Clear();
    DG.TableStyles.Add(ts);
    }
    }
    catch(Exception ex)
    {
    System.Windows.Forms.MessageBox.Show(ex.Message.ToString(),"DataGrid刷新错误");
    }
    }
      

  2.   

    使用dataridtableStyle,比较精悍吧
      

  3.   

    能举个dataridtableStyle的简单例子吗?怕动闹^_^
      

  4.   

    你的DataGrid是WebForm中的吗?如果是请按按照以下步骤做:
    右键点击DataGrid控件-->属性生成器-->格式-->列-->具体的列  
    然后在宽度中输入宽度值。
      

  5.   

    顶!
    解决了再给分!在dataGrid力显示数据时每列宽度都一样,我想能否显示数据前设置每一列的宽度?
    我是要通用的方法。
      

  6.   


    private void Stat_Load(object sender, System.EventArgs e)
    {
    // C#
    // Declare a new DataGridTableStyle in the
    // declarations area of your form.
    DataGridTableStyle ts = new DataGridTableStyle(); // Set the DataGridTableStyle.MappingName property
    // to the table in the data source to map to.
    ts.MappingName = dataGrid1.DataMember; // Add it to the datagrid's TableStyles collection
    dataGrid1.TableStyles.Add(ts); dataGrid1.TableStyles[0].GridColumnStyles["姓名"].Width = 90;
    dataGrid1.TableStyles[0].GridColumnStyles["姓名"].Alignment = HorizontalAlignment.Center;
      

  7.   

    自动设置?还是手动设置?如果手动直接到属性生成器里面就行了自动的话就按照cnming(cnming)说的可以的。