お世話になります。

DataGridViewからDataGridViewRowを生成し、そこに名前を指定して値を
セットしてからDataGridViewに追加するという、基本的なことをやりたいのですが、
どうもうまくいきません。

コードを記述しますので、間違いを指摘していただければ幸いです。

private void Form3_Load(object sender, EventArgs e)
{
    this.dataGridView1.Columns.Clear();

    string[] stDefines = {
            "No_204","営_60","氏名_210","担当者名_120","開始_145","終了_145"
    };

    int idx = 0;
    foreach (string s in stDefines)
    {
        DataGridViewTextBoxColumn col = new DataGridViewTextBoxColumn();
        col.HeaderText = s.Substring(0, s.IndexOf("_"));
    //  ↓ ここで名前を指定しています。
        col.Name = "col" + s.Substring(0, s.IndexOf("_"));
        col.ReadOnly = true;
        col.Width = int.Parse(s.Substring(s.IndexOf("_") + 1));
        col.DisplayIndex = idx;
        this.dataGridView1.Columns.Add(col);
        idx++;
    }

    this.Refresh();

    DataGridViewRow dgvr = new DataGridViewRow();

    dgvr.CreateCells(this.dataGridView1);

  // ↓ここでcolNoというcolumnNameはないといわれます
    dgvr.Cells["colNo"].Value = "0101010101010101";

   this.dataGridView1.Add(dgvr);
}

前半部分にて、各カラムに『col + 「名前」』として定義しているのですが、なぜか
値を入れるときに名前がないというのですが、その理由がわかりません。

Rowの生成はうまくいっており、きちんと項目数も六個とみているのですが、実際に値を
入れるときに失敗しています。

よろしくお願いいたします。