One way to do this is to use MeasureString to compute the size of the text
in each cell, and then take the maximum value. Below is a code snippet that
does this. It assumes your datagrid is bound to a datatable.
public void AutoSizeCol(int col)
{
float width = 0;
int numRows = ((DataTable) dataGrid1.DataSource).Rows.Count;
Graphics g = Graphics.FromHwnd(dataGrid1.Handle);
StringFormat sf = new StringFormat(StringFormat.GenericTypographic);
SizeF size;
for(int i = 0; i < numRows; ++ i)
{
size = g.MeasureString(dataGrid1[i, col].ToString(),
dataGrid1.Font, 500, sf);
if(size.Width > width)
width = size.Width;
}
g.Dispose();
dataGrid1.TableStyles["customers"].GridColumnStyles[col].Width = (int)
width + 8; // 8 is for leading and trailing padding
}
SOURCE:
http://www.syncfusion.com/FAQ/WinFor...c44c.asp#q877q
You can download complete examples here too!
--
Greetz
Jan Tielens
________________________________
Read my weblog:
http://weblogs.asp.net/jan
"Sean" <(E-Mail Removed)> wrote in message
news:f73501c3bdd8$5de8f680$(E-Mail Removed)...
> Hello, I have created a Datagrid which is populated by my
> program. I would like to add code to cause each column
> to expand to fit its largest item. This is similar to
> the autofit in Excel. Is there a easy way to do this?
>