我使用的是下面这种方法,可是报错“ 索引超出范围”。
dataGrid1.DataSource = _dataSet.Tables["customers"];
DataGridTableStyle dgts = new DataGridTableStyle();
dgts.MappingName = "customers";
dataGrid1.TableStyles.Add(dgts);
public void SetColWidth(DataGridTableStyle tableStyle, int colNum, int width)
{ tableStyle.GridColumnStyles[colNum].Width = width;
tableStyle.DataGrid.Refresh();
}
private void button1_Click(object sender, System.EventArgs e)
{
DataGridTableStyle tableStyle = dataGrid1.TableStyles["customers"];
SetColWidth(tableStyle, 1, 200);
}
dataGrid1.DataSource = _dataSet.Tables["customers"];
DataGridTableStyle dgts = new DataGridTableStyle();
dgts.MappingName = "customers";
dataGrid1.TableStyles.Add(dgts);
public void SetColWidth(DataGridTableStyle tableStyle, int colNum, int width)
{ tableStyle.GridColumnStyles[colNum].Width = width;
tableStyle.DataGrid.Refresh();
}
private void button1_Click(object sender, System.EventArgs e)
{
DataGridTableStyle tableStyle = dataGrid1.TableStyles["customers"];
SetColWidth(tableStyle, 1, 200);
}
dt.Columns.Add("a")
dt.Columns.Add("ab")
For i As Integer = 0 To 10
Dim nr As DataRow = dt.NewRow
nr.Item(0) = i
nr.Item(1) = i.ToString + "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
dt.Rows.Add(nr)
Next
Me.DataGrid1.DataSource = dt
Me.DataGrid1.Refresh()
Dim newStyles As New DataGridTableStyle
newStyles.MappingName = "customers"
Me.DataGrid1.TableStyles.Add(newStyles)
Me.DataGrid1.TableStyles("customers").GridColumnStyles(0).Width = 100这个是哪里错了
this.dataGridTableStyle1.GridColumnStyles.AddRange(new System.Windows.Forms.DataGridColumnStyle[] {this.dataGridTextBoxColumn1});
{
DataGridTableStyle dtstyle=new DataGridTableStyle();
dtstyle.MappingName=ds.Tables["department"].ToString();
dataGrid1.TableStyles.Clear();
DataGridColumnStyle boolCol = new DataGridTextBoxColumn();
boolCol.MappingName="dep_number";
boolCol.HeaderText="学号";
boolCol.Width=200;
dtstyle.GridColumnStyles.Add(boolCol);
dataGrid1.TableStyles.Add(dtstyle); }
{
Dg.ReadOnly=dg_readonly;
DataGridTableStyle Dt=new DataGridTableStyle();
DataGridTextBoxColumn Db;
Tb.DefaultView.AllowNew=AllowAdd;//是否可自动增长
if (Dg.TableStyles.Count>0)//如果此DataGrid已经存在一种样式则删除此样式
{
Dg.TableStyles.Remove(Dg.TableStyles[0]); //删除样式
}
Dg.DataSource=Tb;//设置DataGrid的数据源
Dt.MappingName=Tb.TableName; int ColNum=Tb.Columns.Count;//得到Tb的列数
for(int i=0;i<ColNum;i++)////重绘所有的列
{
Db=new DataGridTextBoxColumn();
Db.TextBox.Name=Tb.Columns[i].ColumnName;//设置每一列的名字 注:为中文名
Db.HeaderText=Tb.Columns[i].ColumnName;//设置每一列的列头为中文名
Db.MappingName=Tb.Columns[i].ColumnName;
Db.NullText="";//当Textbox为Null时转成空
Db.TextBox.DoubleClick += new EventHandler(TextBoxDoubleClickHandler);
switch(Tb.Columns[i].ColumnName)
{
case "a":
Dt.PreferredColumnWidth= 60;
break;
case "b":
Dt.PreferredColumnWidth= 50;
break;
case "c":
Dt.PreferredColumnWidth= 100;
break;
}
Dt.GridColumnStyles.Add(Db);//增加样式
}
Dt.AllowSorting=AllowSorting;//是否可排序
Dg.TableStyles.Add(Dt); //DATAGRID增加一种样式
}
{
Dg.ReadOnly=dg_readonly;
DataGridTableStyle Dt=new DataGridTableStyle();
DataGridTextBoxColumn Db;
Tb.DefaultView.AllowNew=AllowAdd;//是否可自动增长
if (Dg.TableStyles.Count>0)//如果此DataGrid已经存在一种样式则删除此样式
{
Dg.TableStyles.Remove(Dg.TableStyles[0]); //删除样式
}
Dg.DataSource=Tb;//设置DataGrid的数据源
Dt.MappingName=Tb.TableName; int ColNum=Tb.Columns.Count;//得到Tb的列数
for(int i=0;i<ColNum;i++)////重绘所有的列
{
Db=new DataGridTextBoxColumn();
Db.TextBox.Name=Tb.Columns[i].ColumnName;//设置每一列的名字 注:为中文名
Db.HeaderText=Tb.Columns[i].ColumnName;//设置每一列的列头为中文名
Db.MappingName=Tb.Columns[i].ColumnName;
Db.NullText="";//当Textbox为Null时转成空
Db.TextBox.DoubleClick += new EventHandler(TextBoxDoubleClickHandler);
switch(Tb.Columns[i].ColumnName)
{
case "a":
Dt.PreferredColumnWidth= 60;
break;
case "b":
Dt.PreferredColumnWidth= 50;
break;
case "c":
Dt.PreferredColumnWidth= 100;
break;
}
Dt.GridColumnStyles.Add(Db);//增加样式
}
Dt.AllowSorting=AllowSorting;//是否可排序
Dg.TableStyles.Add(Dt); //DATAGRID增加一种样式
}
http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx
dataGridTextBoxColumn.MappingName = "Date";
dataGridTextBoxColumn.HeaderText = "日期";
dataGridTextBoxColumn.Format = "yyyy年MM月dd日";
dataGridTextBoxColumn.Width = 60;customDataGridTableStyle.GridColumnStyles.Add (dataGridTextBoxColumn);