Chris,
If you're using VS2005, then use the DataGridView rather than the DataGrid. You can set the column width easily with:
this.MyDataGridView.Columns[0].Width = 300;
If you're using VS2003, then you're stuck with the DataGrid and you have to jump through a few more hoops to set up column widths by using DataGridTableStyles ... something like this (I just copy/pasted this from existing test code I had, sorry if it's a bit messy):
CurrencyManager cm = (CurrencyManager)this.BindingContext[this.oDataFromXML, this.oDataFromXML.Tables[1].TableName];
DataGridTableStyle style = new DataGridTableStyle(cm);
style.GridColumnStyles.Clear();
PropertyDescriptor pd = cm.GetItemProperties()["description"];
DataGridTextBoxColumn col = new DataGridTextBoxColumn(pd);
col.MappingName = "description";
col.HeaderText = "Description";
col.Width = 100;
col.Alignment = HorizontalAlignment.Right;
style.GridColumnStyles.Add(col);
style.AllowSorting = false;
pd = cm.GetItemProperties()["code"];
col = new DataGridTextBoxColumn(pd);
col.MappingName = "code";
col.HeaderText = "Code";
col.Width = 20;
col.Alignment = HorizontalAlignment.Right;
style.GridColumnStyles.Add(col);
style.MappingName = this.oDataFromXML.Tables[1].TableName;
this.oGrid2.TableStyles.Add(style);
this.oGrid2.DataSource = this.oDataFromXML.Tables[1];