非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

C#: DataGridViewをテーブルとして使う方法

   

C#のDataGridViewの使い方を列挙します。

DataGridViewって、デフォルトはデータベーステーブルみたいな形をしていて、一般的なテーブルとして使うには少し手を加える必要があります。

まずは基本形

基本形はこんな感じです。とりあえず例として4列のテーブルを作りました。

DataGridView table = new DataGridView(){
  Dock = DockStyle.Fill,
  ColumnCount = 4,
  Parent = this,
};
table.Columns[0].HeaderText = "1";
table.Columns[1].HeaderText = "2";
table.Columns[2].HeaderText = "3";
table.Columns[3].HeaderText = "4";
 

 

 

表を横いっぱいにする

表を横いっぱいに広げる場合は以下の部分を追加します。

DataGridView table = new DataGridView(){
  Dock = DockStyle.Fill,
  ColumnCount = 4,
  AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill, //追加 
  Parent = this,
};
table.Columns[0].HeaderText = "1";
table.Columns[1].HeaderText = "2";
table.Columns[2].HeaderText = "3";
table.Columns[3].HeaderText = "4";
 

 

[ad#top-1]

データを追加する

データを3行分追加してみました。

DataGridView table = new DataGridView(){
  Dock = DockStyle.Fill,
  ColumnCount = 4,
  AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill,
  Parent = this,
};
table.Columns[0].HeaderText = "1";
table.Columns[1].HeaderText = "2";
table.Columns[2].HeaderText = "3";
table.Columns[3].HeaderText = "4";
table.Rows.Add("data1-1", "data1-2", "data1-3", "data1-4"); //追加 
table.Rows.Add("data2-1", "data2-2", "data2-3", "data2-4"); //追加 
table.Rows.Add("data3-1", "data3-2", "data3-3", "data3-4"); //追加 
 

 

 

データ追加行を消す

最後の行にあるデータ追加行(*のところ)を消します。データを追加できるので便利と言えば便利ですが、データベーステーブルっぽい体なので消したい時もあります。

DataGridView table = new DataGridView(){
  Dock = DockStyle.Fill,
  ColumnCount = 4,
  AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill,
  AllowUserToAddRows = false, //追加 
  Parent = this,
};
table.Columns[0].HeaderText = "1";
table.Columns[1].HeaderText = "2";
table.Columns[2].HeaderText = "3";
table.Columns[3].HeaderText = "4";
table.Rows.Add("data1-1", "data1-2", "data1-3", "data1-4");
table.Rows.Add("data2-1", "data2-2", "data2-3", "data2-4");
table.Rows.Add("data3-1", "data3-2", "data3-3", "data3-4"); 
 

 

 

左側の項目列を消す

一番左端の項目列(RowHeader)を消します。

DataGridView table = new DataGridView(){
  Dock = DockStyle.Fill,
  ColumnCount = 4,
  AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill,
  AllowUserToAddRows = false,
  RowHeadersVisible = false, //追加
  Parent = this,
};
table.Columns[0].HeaderText = "1";
table.Columns[1].HeaderText = "2";
table.Columns[2].HeaderText = "3";
table.Columns[3].HeaderText = "4";
table.Rows.Add("data1-1", "data1-2", "data1-3", "data1-4");
table.Rows.Add("data2-1", "data2-2", "data2-3", "data2-4");
table.Rows.Add("data3-1", "data3-2", "data3-3", "data3-4"); 
 

 

 

列幅を個別に設定する

列幅を個別に設定する方法です。

DataGridView table = new DataGridView(){
  Dock = DockStyle.Fill,
  ColumnCount = 4,
  AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill,
  AllowUserToAddRows = false,
  RowHeadersVisible = false,
  Parent = this,
};
table.Columns[0].HeaderText = "1";
table.Columns[1].HeaderText = "2";
table.Columns[2].HeaderText = "3";
table.Columns[3].HeaderText = "4";
table.Rows.Add("data1-1", "data1-2", "data1-3", "data1-4");
table.Rows.Add("data2-1", "data2-2", "data2-3", "data2-4");
table.Rows.Add("data3-1", "data3-2", "data3-3", "data3-4"); 
table.Columns[0].Width = 50;  //追加
table.Columns[1].Width = 100; //追加
table.Columns[2].Width = 200; //追加
table.Columns[2].Width = 200; //追加
 

 

 

行ごとに選択する

選択状態をセルごとではなく行ごとに選択する方法です。

DataGridView table = new DataGridView(){
  Dock = DockStyle.Fill,
  ColumnCount = 4,
  AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill,
  AllowUserToAddRows = false,
  RowHeadersVisible = false,
  SelectionMode = DataGridViewSelectionMode.FullRowSelect, //追加
  Parent = this,
};
table.Columns[0].HeaderText = "1";
table.Columns[1].HeaderText = "2";
table.Columns[2].HeaderText = "3";
table.Columns[3].HeaderText = "4";
table.Rows.Add("data1-1", "data1-2", "data1-3", "data1-4");
table.Rows.Add("data2-1", "data2-2", "data2-3", "data2-4");
table.Rows.Add("data3-1", "data3-2", "data3-3", "data3-4"); 
table.Columns[0].Width = 50;
table.Columns[1].Width = 100;
table.Columns[2].Width = 200;
table.Columns[2].Width = 200;
 

 

 

グリッド線を消す

セルのグリッド線を消す方法です。ついでにセルのデータを編集できなくする(ReadOnly)も加えました。ちょっとエクスプローラー風になりました。

DataGridView table = new DataGridView(){
  Dock = DockStyle.Fill,
  ColumnCount = 4,
  AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill,
  AllowUserToAddRows = false,
  RowHeadersVisible = false,
  SelectionMode = DataGridViewSelectionMode.FullRowSelect,
  CellBorderStyle = DataGridViewCellBorderStyle.None, //追加
  ReadOnly = true, //ついで
  Parent = this,
};
table.Columns[0].HeaderText = "1";
table.Columns[1].HeaderText = "2";
table.Columns[2].HeaderText = "3";
table.Columns[3].HeaderText = "4";
table.Rows.Add("data1-1", "data1-2", "data1-3", "data1-4");
table.Rows.Add("data2-1", "data2-2", "data2-3", "data2-4");
table.Rows.Add("data3-1", "data3-2", "data3-3", "data3-4"); 
table.Columns[0].Width = 50;
table.Columns[1].Width = 100;
table.Columns[2].Width = 200;
table.Columns[2].Width = 200;
 

 

 

[ad#ad-1]

スポンサーリンク

 - C#応用編