Personally, I call a method that binds the grid in the form_load event and formats the headers at the same time. See below snippet:
private void GetDiscounts(object sender, EventArgs e)
{
try
{
Discounts = new BLL.Discounts().GetDiscounts(this.Pricebook.Id).DefaultView;
if (Discounts.Count > 0)
{
DiscountsGridView.DataSource = Discounts;
DiscountsGridView.Columns["Id"].Visible = false;
DiscountsGridView.Columns["Name"].HeaderText = " Name";
DiscountsGridView.Columns["Description"].HeaderText = " Description";
DiscountsGridView.Columns["StartDate"].HeaderText = " Start Date";
DiscountsGridView.Columns["EndDate"].HeaderText = " End Date";
DiscountsGridView.Columns["Expires"].HeaderText = " Expires";
DiscountsGridView.Columns["Active"].HeaderText = " Active";
DiscountsGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
DiscountsGridView.ClearSelection();
}
else
{
DiscountsGridView.DataSource = "";
}
}
catch (Exception ex)
{
MessageBox.Show(string.Format("Error Getting Discounts: {0}", ex.Message), "ERP", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}