我检索了一下,网上普通采用这种方法: 
1、新建立一个  DataGridTableStyle 
      DataGridTableStyle dtstyle= new DataGridTableStyle(); 
2、绑定数据源 
      dtstyle.MappingName=TableName; 
3、设定 
      dg.TableStyles.Clear(); 
      dg.TableStyles.Add(dtstyle); 
      dg.TableStyles[TableName].GridColumnStyles[ColumnName].Width=200; 
可是我程序中是这样来绑定datagrid的,这种方式不能改,否则改动太大:dataGrid_user.DataSource=dt; 
dt是我通过写好的一个类来执行sql语句取到的DataTable,绑定和取记录集只有这一句,那这样的话,我怎么来应用上面的改变列宽的方法呢? TableName是什么?用我的程序中的什么来代替?ColumnName又用什么来代替?着急!谢谢大家! 
我用的是datagrid,不是datagirdview

解决方案 »

  1.   


    在winform中,设计的时候数据还没绑定,怎么直接拉啊
      

  2.   

    你可以在设计的时候从工具箱里面把dataset和Datatable 托出来,生成好datatable 里面的所有列,再创建DataGridTableStyle 其datatable 属性设置为你刚创建的datatable
      

  3.   

    在绑定之前,先添加DataGridTableStyle,进行列宽及列的样式设置。
      

  4.   

    TableName是什么?用我的程序中的什么来代替?ColumnName又用什么来代替?着急!谢谢大家!--------------------------------------
    TableName就是你的dt.TableName,ColumnName应该就是你的SQL查询语句中的字段名,因为你的绑定很简单,没有另外规定列名,所以应该就是字段名。
      

  5.   

    DataGrid dtGrid = new DataGrid();
                dtGrid.DataSource = dt;            DataGridTableStyle dtstyle = new DataGridTableStyle();
                dtstyle.DataGrid = dtGrid;
                dtstyle.MappingName = dt.TableName;            DataGridColumnStyle myColStyle = new DataGridTextBoxColumn();
                myColStyle.MappingName = "ColumnName(对应SQL查询语句中的字段名)";
                myColStyle.Width = 50;
                myColStyle.HeaderText = "显示的标题名称";
                dtstyle.GridColumnStyles.Add(myColStyle);               dtGrid.TableStyles.Clear();
                dtGrid.TableStyles.Add(dtstyle);