I am not sure you can change the font for individual columns or cells. The grid has a property that lets you set the font and size.
To set the width of columns, I use this method (it adds a table style to the grid):
private void SetColumnWidth(int columnID, int width)
{
// add table style if first call
if (this.dataGrid1.TableStyles.Count == 0)
{
// Set the DataGridTableStyle.MappingName property
// to the table in the data source to map to.
dataGridColumnTableStyle.MappingName = "<name of your table in the DS here>";
// Add it to the datagrid's TableStyles collection
this.dataGrid1.TableStyles.Add(dataGridColumnTableStyle);
}
// set width
this.dataGrid1.TableStyles[0].GridColumnStyles[columnID].Width = width;
}
This method is also helpful when you want to hide a column that is in the bound DataTable, but you don't want to show (then you set width = 0).