DataGrid.DataSource为DataView的DataGrid列宽重新自定义绘制。

DataGrid.DataSource为DataView的DataGrid列宽重新自定义绘制。

自定义DataGrid的列宽,数据源并非直接从DataSet直接拖过来,而是动态添加,不多说,部分代码如下:

//重绘DataGrid的每个列

            DataGridTableStyle ts = new DataGridTableStyle();
            ts.MappingName = RealEstatePDA.Util.DataBase.DataViews.getInstance().BuildingLocationDataView.Table.TableName; //如果绑定的是Datatable,这里要变一下  
            int numCols = RealEstatePDA.Util.DataBase.DataViews.getInstance().BuildingLocationDataView.Table.Columns.Count;
            int i = 0;
            DataGridTextBoxColumn aColumnTextColumn;
            while (i < numCols)   //重绘所有的列  
            {
                aColumnTextColumn = new DataGridTextBoxColumn();
                aColumnTextColumn.MappingName = RealEstatePDA.Util.DataBase.DataViews.getInstance().BuildingLocationDataView.Table.Columns[i].ColumnName;
                ts.GridColumnStyles.Add(aColumnTextColumn);     //增加一种自定义的column风格  
                i++;
            }

            this.HousedataGrid.TableStyles.Add(ts);

            this.HousedataGrid.TableStyles[0].GridColumnStyles[0].Width = 70;   //第一列的宽度  
            this.HousedataGrid.TableStyles[0].GridColumnStyles[0].HeaderText = "房屋编号"; //第一列的标题  
            this.HousedataGrid.TableStyles[0].GridColumnStyles[1].Width = 200;   //第二列的宽度  
            this.HousedataGrid.TableStyles[0].GridColumnStyles[1].HeaderText = "YYYYY"; //第二列的标题  

            this.HousedataGrid.Refresh();    


           //




相类似的另一种样式:
private DataView dv1,dv2;
private DataGridTableStyle dgts;

private void frmChhd_Resize(object sender, System.EventArgs e)
{
//调整dataGrid1的列宽
if(dv1!=null)
{
//添加模板列
if(dataGrid1.TableStyles.Count==0)
{
dgts.MappingName=dv1.Table.TableName;
dataGrid1.TableStyles.Add(dgts);
}
int i=dataGrid1.Width/6-10;

dataGrid1.TableStyles[0].GridColumnStyles[0].Width=i*2;

dataGrid1.TableStyles[0].GridColumnStyles[1].Width
=dataGrid1.TableStyles[0].GridColumnStyles[2].Width
=dataGrid1.TableStyles[0].GridColumnStyles[3].Width
=dataGrid1.TableStyles[0].GridColumnStyles[4].Width=i;
}

}

你可能感兴趣的:(DataGrid.DataSource为DataView的DataGrid列宽重新自定义绘制。)