关于datagrid列宽的问题
datagrid是否有自动调整列宽(也就是不管内容有多长都能够完整的显示而且不换行)的功能或者方法呢?哪位能告诉我?最好有个例子。 问题点数:50、回复次数:3Top
1 楼dy_2000_abc(芝麻开门)回复于 2002-12-27 22:11:21 得分 30
先写一个DataGridTextBoxColumn的子类:
public class myTextBoxColumn:DataGridTextBoxColumn
{
DataColumn dc;
public myTextBoxColumn(DataColumn dc)
{
this.dc=dc;
}
protected override void Paint(Graphics g, Rectangle rc, CurrencyManager cm, int rowNum, Brush backBrush, Brush foreBrush, bool AlignToRight)
{
int width=(int)g.MeasureString(((DataRowView)cm.List[rowNum]).Row[dc,DataRowVersion.Current].ToString(),this.DataGridTableStyle.DataGrid.Font).Width;
if (width>this.Width)
this.Width=width;
base.Paint(g,rc,cm,rowNum,backBrush,foreBrush,AlignToRight);
}
}
使用这个类:
ds=new DataSet();
SqlDataAdapter sda=new SqlDataAdapter("select A from abc",sqlConnection1);
sda.Fill(ds,"abc");
DataGridTableStyle dts=new DataGridTableStyle();
dts.MappingName="abc";
myTextBoxColumn dtc=new myTextBoxColumn(ds.Tables[0].Columns["A"]);
dtc.MappingName="A";
dts.GridColumnStyles.Add(dtc);
dataGrid1.TableStyles.Add(dts);
dataGrid1.SetDataBinding(ds,"abc");Top
2 楼dy_2000_abc(芝麻开门)回复于 2002-12-27 22:17:32 得分 20
还有这个:
http://www.syncfusion.com/FAQ/WinForms/FAQ_c44c.asp#q877qTop
3 楼GiantHard(展翅)回复于 2002-12-27 22:50:59 得分 0
可以直接设置Column的宽度为自动调节Top





