Вы не сначала проверяете, есть ли какие-либо выбранные строки при двойном щелчке.Сначала проверьте, прежде чем ссылаться на первый ...
if (dataGridView1.SelectedRows == null || dataGridView1.SelectedRows.Count == 0)
return;
button2.Text = "Update";
textBox1.Text = dataGridView1.SelectedRows[0].Cells["dgProCode"].Value.ToString();
textBox2.Text = dataGridView1.SelectedRows[0].Cells["dgProName"].Value.ToString();
...