C#でカラムを操作する場合、DataGridViewコントロールを使用しますが、DataSourceプロパティを使用してデータの表示を行うと、カラム表示が簡単に実装できます。
DataSourceとして指定できるオブジェクトは、

  • IList インターフェイス。(1次元配列等)
  • IListSource インターフェイス。(DataTable、DataSet)
  • IBindingList インターフェイス。(BindingList等)
  • IBindingListView インターフェイス。(BindingSource等)

の4つです。

今回はIListSource インターフェイスのDataTableを使用した方法でカラム表示を行います。
DataTableは、表形式で複数のデータをまとめて保持できます。Columns.Addメソッドでカラムを追加し、Rows.Addメソッドで行を追加していきます。DataGridViewで表示するために、出来上がったDataTableを、DataSourceプロパティに設定します。
DataGridViewTextBoxColumnは、テキスト文字列の表示および編集を行うためのDataGridViewのセルを論理的にホストするために使用します。ここでは、列の見出しを付けるために使用しています。

DataTable dt = new DataTable();

// 3列定義します。
dt.Columns.Add("A", Type.GetType("System.String"));
dt.Columns.Add("B", Type.GetType("System.Int32"));
dt.Columns.Add("C", Type.GetType("System.DateTime"));

// 4行追加します。
for (int i = 0; i < 4; i++)
{
    DataRow row = dt.NewRow();
    row["A"] = "文字列を格納します。";
    row["B"] = i;
    row["C"] = DateTime.Now;
    dt.Rows.Add(row);
}

DataGridView dataGridView1 = new DataGridView();
dataGridView1.Dock = DockStyle.Fill;

//列の自動追加抑止
dataGridView1.AutoGenerateColumns = false;
//データソースに上記で生成したMyRowのリストを設定
dataGridView1.DataSource = dt;

//表示用カラムの生成
DataGridViewTextBoxColumn textColumnA = new DataGridViewTextBoxColumn();
DataGridViewTextBoxColumn textColumnB = new DataGridViewTextBoxColumn();
DataGridViewTextBoxColumn textColumnC = new DataGridViewTextBoxColumn();
//A,B,Cという名前でDataTableの列にそれぞれアクセスする
textColumnA.DataPropertyName = "A";
textColumnA.HeaderText = "カラムA";
dataGridView1.Columns.Add(textColumnA);
textColumnB.DataPropertyName = "B";
textColumnB.HeaderText = "カラムB";
dataGridView1.Columns.Add(textColumnB);
textColumnC.DataPropertyName = "C";
textColumnC.HeaderText = "カラムC";
dataGridView1.Columns.Add(textColumnC);

this.ClientSize = new Size(300, 150);
this.Controls.Add(dataGridView1);

// 5行目に追加します。
DataRow addrow = dt.NewRow();
addrow["A"] = "文字列を格納します。";
addrow["B"] = 4;
addrow["C"] = DateTime.Now;
dt.Rows.Add(addrow);

DataTableを使用すると、データの編集、行の削除・追加を行うことができます。
データの編集は、次に示すようにテーブルの何行目の何列目かを指定します。

dt.Rows[2][“A”] = “Tomosoft”;
引数は、[RowIndex][ColumnIndex]となります

行の削除は、DataTableのRows.RemoveAtメソッド で削除する行を指定すると、 DataGridViewから指定された行が削除されます。
行の追加は、DataRowに1行分の列データを設定して、DataTableのRows.AddメソッドでDataTableに追加すると、DataGridViewに表示されます(コメント「// 5行目に追加します」以降)。

上記のプログラムを実行した結果を次に示します。

DataGridViewへのカラム表示