ListviewとはExcelの表のようなオブジェクトです。
表を作りたいときに使いたくなるオブジェクトですが、思うような形になかなかならないので、基本の手法をまとめました。
ListViewオブジェクトの作成
ツールボックスからListViewを選択し、適当な大きさに広げて設置します。縦軸、横軸に項目を設定するには右上の▼を開きます。
横軸は「列の編集」です。
0番目はTextを空白にして、1番目のColumnHeader2のTextを「横1」、ColumnHeader3を「横2」…とします。
縦軸は▼から「項目の編集」を選択します。
0番目はTextを「縦1」、1番目を「縦2」…とします。
ここまでで、デザイナーは↓のようになっています。
ListViewのプロパティの「View」をDetail
にします。
これでListViewが完成します。
ListViewに数値(文字)を格納
各セルには縦(行)方向はItems[i]
、横(列)方向はSubItems[j]
でアクセスします。Add
で値を格納します。
private void Form1_Load(object sender, EventArgs e) { listView1.Items[0].SubItems.Add("a"); listView1.Items[0].SubItems.Add("aa"); listView1.Items[0].SubItems.Add("aaa"); listView1.Items[1].SubItems.Add("b"); listView1.Items[1].SubItems.Add("bb"); listView1.Items[1].SubItems.Add("bbb"); listView1.Items[2].SubItems.Add("c"); listView1.Items[2].SubItems.Add("cc"); listView1.Items[2].SubItems.Add("ccc"); }
すでに値が入っているときは.Text
を上書きします。
private void button1_Click(object sender, EventArgs e) { for (int row = 0; row < listView1.Items.Count; row++) { for (int i = 1; i <= 3; i++) { listView1.Items[row].SubItems[i].Text = (i + row * 3).ToString(); } } }
列幅の調整
基本はWidth
プロパティを設定します。
listView1.Columns[0].Width = 120;
値を"-1"にすると、SubItemの文字列に応じて列幅が調整されます。
foreach (ColumnHeader ch in listView1.Columns) { ch.Width = -1; }
値を"-2"にすると、columnHeaderもふくめて最適化されます。
foreach (ColumnHeader ch in listView1.Columns) { ch.Width = -2; }
まとめ
C#のListViewの基本操作をまとめました。また、似たようなものとしてGridViewというものもあります。