ListView に Column を設定する

ListView に Column を設定します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プログラムの説明

  1. ListView はウインドウズ・エクスプローラでお馴染みの ListBox を拡張したものです。
    ListView に Column を設定して、詳細(Details)モードで表示します。
  2. プロジェクトの作成は ListView に登録する を参照して下さい。
  3. MyForm の Constructor から InitializeComponent() に続いて InitializeListView() を呼び出します。
        public MyForm()
        {
            InitializeComponent();
            InitializeListView();
            Load += new System.EventHandler(MyForm_Load);
        }
        
  4. ListView を初期化する InitializeListView() です。
    Column を表示するので View に View.Details(詳細モード)を設定して下さい。
    アイテムは昇順(Ascending)にソートして表示します。
    "名前", "種類", "データ" の Column を AddRange() で設定します。
    100, 60, 80 は Column の幅です。
    ページ先頭の画像を参考にして下さい。
        // ListViewコントロールを初期化します。
        private void InitializeListView()
        {
            // ListViewコントロールのプロパティを設定
            listView1.FullRowSelect = true;
            listView1.GridLines = true;
            listView1.Sorting = SortOrder.Ascending;
            listView1.View = View.Details;
    
            // 列(Column)ヘッダの作成
            ColumnHeader[] columnHead = new ColumnHeader[3];
            for (int i = 0; i < 3; i++)
                columnHead[i] = new ColumnHeader();
            columnHead[0].Text = "名前";
            columnHead[0].Width = 100;
            columnHead[1].Text = "種類";
            columnHead[1].Width = 60;
            columnHead[2].Text = "データ";
            columnHead[2].Width = 80;
            listView1.Columns.AddRange(columnHead);
        }
        
  5. MyForm_Load() メソッドで listView1.Items.Add() でアイテムを登録します。
        private void MyForm_Load(object sender, System.EventArgs e)
        {
            // ListViewコントロールにデータを追加します。
            string[] item1 = { "リンゴ", "果物", "赤"};
            listView1.Items.Add(new ListViewItem(item1));
            string[] item2 = { "メロン", "果物", "緑"};
            listView1.Items.Add(new ListViewItem(item2));
            string[] item3 = { "ピーマン", "野菜", "緑"};
            listView1.Items.Add(new ListViewItem(item3));
        } 
        
  6. CLI の環境で実行可能な完成したプログラムです。
    /********************************************/
    /*★ ListView に Column を設定    前田 稔 ★*/
    /********************************************/
    using System;
    using System.Drawing;
    using System.Windows.Forms;
    
    public class MyForm : Form
    {
        private ListView listView1;
    
        public MyForm()
        {
            InitializeComponent();
            InitializeListView();
            Load += new System.EventHandler(MyForm_Load);
        }
    
        private void InitializeComponent()
        {
            this.listView1 = new System.Windows.Forms.ListView();
            this.SuspendLayout();
            // 
            // listView1
            // 
            this.listView1.Location = new System.Drawing.Point(12, 12);
            this.listView1.Name = "listView1";
            this.listView1.Size = new System.Drawing.Size(258, 232);
            //this.listView1.Sorting = System.Windows.Forms.SortOrder.Descending;
            this.listView1.TabIndex = 0;
            this.listView1.UseCompatibleStateImageBehavior = false;
            //this.listView1.View = System.Windows.Forms.View.List;
            // 
            // MyForm
            // 
            this.ClientSize = new System.Drawing.Size(282, 256);
            this.Controls.Add(this.listView1);
            this.Name = "MyForm";
            this.ResumeLayout(false);
        }
    
        // ListViewコントロールを初期化します。
        private void InitializeListView()
        {
            // ListViewコントロールのプロパティを設定
            listView1.FullRowSelect = true;
            listView1.GridLines = true;
            listView1.Sorting = SortOrder.Ascending;
            listView1.View = View.Details;
    
            // 列(コラム)ヘッダの作成
            ColumnHeader[] columnHead = new ColumnHeader[3];
            for (int i = 0; i < 3; i++)
                columnHead[i] = new ColumnHeader();
            columnHead[0].Text = "名前";
            columnHead[0].Width = 100;
            columnHead[1].Text = "種類";
            columnHead[1].Width = 60;
            columnHead[2].Text = "データ";
            columnHead[2].Width = 80;
            listView1.Columns.AddRange(columnHead);
        }
    
        // ListViewコントロールのデータを更新します。
        private void MyForm_Load(object sender, System.EventArgs e)
        {
            // ListViewコントロールにデータを追加します。
            string[] item1 = { "リンゴ", "果物", "赤"};
            listView1.Items.Add(new ListViewItem(item1));
            string[] item2 = { "メロン", "果物", "緑"};
            listView1.Items.Add(new ListViewItem(item2));
            string[] item3 = { "ピーマン", "野菜", "緑"};
            listView1.Items.Add(new ListViewItem(item3));
        }
    }
    
    class form01
    {
        public static void Main()
        {
            MyForm mf = new MyForm();
            Application.Run(mf);
        }
    }
    

超初心者のプログラム入門(C# Frame Work)