DataGridTableStyle myGridStyle = new DataGridTableStyle(); DataGridTextBoxColumn ColumnStyle =new DataGridTextBoxColumn();//specify the type ColumnStyle.MappingName = "line1"; //specify the field ColumnStyle.Width = 100; //specify the width of the column myGridStyle.GridColumnStyles.Add(ColumnStyle); gridMapLayer.TableStyles.Add(myGridStyle);我用这种方法,可是没有反映啊?
我的问题解决了,我用的是微软的FAQ5.35 How do I set the width of a column in my DataGrid?To set a column width, your datagrid must be using a non-null DataGridTableStyle. Once this is in place, you can set the column width by first getting the tablestyle and then using that object to obtain a column style with which you can set the width. Here are some code snippets showing how you might do this.
//.... make sure your DataGrid is using a tablestyle
DataGridTableStyle myTableStyle = new DataGridTableStyle( );
danweiTableStyle.MappingName = "Customers";//声明DataGridColumnStyle
DataGridColumnStyle bianhaoStyle = new DataGridTextBoxColumn( );
bianhaoStyle.MappingName = "Bianhao";
bianhaoStyle.HeaderText = "编号";
bianhaoStyle.Width = 31;//在此设置宽度//添加列格式和表格式
myTableStyle.GridColumnStyles.Add( bianhaoStyle );
myDataGrid.TableStyles.Add( myTableStyle );
DataGridTextBoxColumn ColumnStyle =new DataGridTextBoxColumn();//specify the type
ColumnStyle.MappingName = "line1"; //specify the field
ColumnStyle.Width = 100; //specify the width of the column
myGridStyle.GridColumnStyles.Add(ColumnStyle);
gridMapLayer.TableStyles.Add(myGridStyle);我用这种方法,可是没有反映啊?
DataGridTableStyle myGridStyle = new DataGridTableStyle();
myGridStyle.MappingName = "picmain";
DataGridTextBoxColumn ColumnStyle =new DataGridTextBoxColumn();
ColumnStyle.MappingName = "line1";
ColumnStyle.HeaderText = "编号";ColumnStyle.Width = 100;
myGridStyle.GridColumnStyles.Add(ColumnStyle);
gridMapLayer.TableStyles.Add(myGridStyle);我是这样绑定的数据库:
// 把数据读取到数据集合中
myCmd.Fill( dtSet, "datafiles" );
// 从数据集合中读取第一张表的数据
DataTable dTable = dtSet.Tables[0];gridMapLayer.DataSource = dtSet.Tables[0];
gridMapLayer.TableStyles.Clear();
然后再添加
gridMapLayer.TableStyles.Add(myGridStyle);
//.... make sure your DataGrid is using a tablestyle
dataGrid1.DataSource = _dataSet.Tables["customers"];
DataGridTableStyle dgts = new DataGridTableStyle();
dgts.MappingName = "customers";
dataGrid1.TableStyles.Add(dgts);
//......
//method to set a column with by colnumber
public void SetColWidth(DataGridTableStyle tableStyle, int colNum, int width)
{
try
{
tableStyle.GridColumnStyles[colNum].Width = width;
tableStyle.DataGrid.Refresh();
}
catch{} //empty catch .. do nothing
}
//....
// here is how you might call this method
private void button1_Click(object sender, System.EventArgs e)
{
DataGridTableStyle tableStyle = dataGrid1.TableStyles["customers"];
SetColWidth(tableStyle, 1, 200);
}
关注中