HeyCHのブログ

慢性疲労のへいちゃんです

【C#】ListViewって何よ

ListViewは様々なリスト形式で、データを表示することができるコントロールです。
今回はListViewがどのような表示ができるかを確認していきたいと思います。

プロジェクトの準備

Windowsフォームアプリケーションを新規作成し、ListViewを追加し、DockプロパティをFillに設定します。
32×32と16×16用のImageListを1個ずつ作成し、適当に作ったアイコンを登録します。
最後にListViewのSmallImageListに16×16のImageListを、LargeImageListに32×32のImageListを追加します。
f:id:HeyCH:20200420235911p:plain

LargeIcon

        private void Form1_Load(object sender, EventArgs e) {
            for (int i = 0; i < 100; i++) {
                ListViewItem item = new ListViewItem("item" + i, i % 3);
                listView1.Items.Add(item);
            }
        }

f:id:HeyCH:20200421000543p:plain
※i % 3はiを3で割った時の余りを計算する式です。

SmallIcon

        private void Form1_Load(object sender, EventArgs e) {
            for (int i = 0; i < 100; i++) {
                ListViewItem item = new ListViewItem("item" + i, i % 3);
                listView1.Items.Add(item);
            }
        }

f:id:HeyCH:20200421001041p:plain

List

        private void Form1_Load(object sender, EventArgs e) {
            for (int i = 0; i < 100; i++) {
                ListViewItem item = new ListViewItem("item" + i, i % 3);
                listView1.Items.Add(item);
            }
        }

f:id:HeyCH:20200421001237p:plain

Tile

        private void Form1_Load(object sender, EventArgs e) {
            for (int i = 0; i < 100; i++) {
                ListViewItem item = new ListViewItem("item" + i, i % 3);
                listView1.Items.Add(item);
            }
        }

f:id:HeyCH:20200421001358p:plain

Details

        private void Form1_Load(object sender, EventArgs e) {
            var h0 = new ColumnHeader(0);
            var h1 = new ColumnHeader(1);
            var h2 = new ColumnHeader(2);
            h0.Text = "Column0";
            h1.Text = "Column1";
            h2.Text = "Column2";
            listView1.Columns.Add(h0);
            listView1.Columns.Add(h1);
            listView1.Columns.Add(h2);
            for (int i = 0; i < 100; i++) {
                ListViewItem item = new ListViewItem(new[] { "DetailsItem" + i + "-1", "DetailsItem" + i + "-2", "DetailsItem" + i + "-3" }, (i % 3));
                listView1.Items.Add(item);
            }
            for (int i = 0; i < listView1.Columns.Count; i++) {
                listView1.Columns[i].Width = -1;
            }
        }

f:id:HeyCH:20200421003438p:plain