Thanks for the replies, but I just ended up looping through the creation of the rows and columns and filling them with my required data.
Creating/initializing DataGridView:
private System.Windows.Forms.DataGridView dataGridView1;
this.dataGridView1 = new System.Windows.Forms.DataGridView();
//Size and location can be changed to whatever you want
this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridView1.Location = new System.Drawing.Point(12, 436);
this.dataGridView1.Name = "dataGridView1";
this.dataGridView1.RowHeadersWidth = 70; //Adjusts row header to fit entire "Score" string
this.dataGridView1.Size = new System.Drawing.Size(976, 398);
this.dataGridView1.TabIndex = 10;
Creating rows/columns and filling them with my data:
for (int i = 0; i <= 40; i++)
{
dataGridView1.Columns.Add("column" + i.ToString(), i.ToString());
dataGridView1.Columns[i].Width = 22;
}
DataGridViewRow row = (DataGridViewRow)dataGridView1.Rows[0].Clone();
for (int i = 0; i <= 40; i++)
{
row.Cells[i].Value = scores[0,i]; // "scores" is an Int32[,] array filled with my data
}
dataGridView1.Rows.Add(row);
dataGridView1.Rows[0].HeaderCell.Value = "Score";
The result looked something like this.