ListViewに項目を追加する - C#

リストビューに項目を追加するコードを紹介します。

概要

リストビューに項目を追加するには、ListViewItemオブジェクトを作成し、 ItemsオブジェクトのAddメソッドを呼び出してリストビューに追加します。

プログラム

UIの準備

下図のフォームを作成します。ボタンを2つ、複数行のテキストボックスを1つ配置します。(今回の例ではボタンは1つのみ利用します。)


フォームデザイナでListViewをクリックして選択します。プロパティウィンドウの[View]プロパティを変更します。 デフォルトは"LargeIcon"が設定されています。


プロパティの値のコンボボックスをクリックします。ドロップダウンリストから"Details"の項目をクリックして選択します。


Viewプロパティの値が、"Details"になりました。リストビューのカラムのヘッダが表示されます。


続いてカラムを設定します。[Columns]プロパティの値の右側の[...]ボタンをクリックします。


[ColumnHeader コレクション エディター]のウィンドウが表示されます。


ウィンドウ左下の[追加]ボタンをクリックします。クリックするとヘッダの項目が追加されます。ボタンを3回クリックして、カラムのヘッダ項目を4つにします。


フォームデザイナに戻ると、カラムが4つになりました。

コード

以下のコードを記述します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ListViewDemo
{
  public partial class FormAddDelete : Form
  {
    public FormAddDelete()
    {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
      ListViewItem lvi = new ListViewItem();
      lvi.Text = "ぺんぎんクッキー";
      lvi.SubItems.Add("420");
      lvi.SubItems.Add("18");
      lvi.SubItems.Add("サクサクしたクッキーです。");
      listView1.Items.Add(lvi);

      lvi = new ListViewItem();
      lvi.Text = "らくだキャラメル";
      lvi.SubItems.Add("220");
      lvi.SubItems.Add("16");
      lvi.SubItems.Add("まったりした味わいのキャラメルです。");
      listView1.Items.Add(lvi);

      lvi = new ListViewItem();
      lvi.Text = "かるがもタルト";
      lvi.SubItems.Add("390");
      lvi.SubItems.Add("33");
      lvi.SubItems.Add("濃厚な風味のタルトです。");
      listView1.Items.Add(lvi);
    }


  }
}

解説

ListViewImteオブジェクトを作成します。
  ListViewItem lvi = new ListViewItem();

Textプロパティに値を代入します。Textプロパティの値が最初のカラムの値になります。
  lvi.Text = "ぺんぎんクッキー";

SubItems.Addメソッドを呼び出し、SubItemを追加します。Addメソッドの引数にSubItemの値を与えます。この値が、2番目以降のカラムの値になります。
  lvi.SubItems.Add("420");
  lvi.SubItems.Add("18");
  lvi.SubItems.Add("サクサクしたクッキーです。");

ListViewのItemsプロパティのAddメソッドを呼び出し、ListViewに項目を追加します。AddメソッドのパラメーターにListViewItemオブジェクトを与えます。
  listView1.Items.Add(lvi);

参考

同じ処理を以下のコードで記述することもできます。
ListViewItemのコンストラクタに配列を与えると、SubItemsの作成をコンストラクタの処理でできます。
  private void button1_Click(object sender, EventArgs e)
  {
    listView1.Items.Add(new ListViewItem(new[] { "ぺんぎんクッキー", "420", "18", "サクサクしたクッキーです。" }));
    listView1.Items.Add(new ListViewItem(new[] { "らくだキャラメル", "220", "16", "まったりした味わいのキャラメルです。" }));
    listView1.Items.Add(new ListViewItem(new[] { "かるがもタルト", "390", "33", "濃厚な風味のタルトです。" }));
  }

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。


[Add]ボタンをクリックします。ListViewに項目が追加されました。カラムの値も設定できています。


ヘッダの境界をドラッグするとカラムの幅を変更できます。

ヘッダとカラムの設定

ヘッダのキャプション文字列とカラムの幅を変更します。
ListViewを選択し、[Columns]プロパティの値の右側の[...]ボタンをクリックします。 下図の[ColumnHeader コレクション エディター]のウィンドウが表示されます。


左側のエリアの[メンバー]のリストで、最初のColumnHeaderの項目をクリックして選択します。 右側のプロパティの一覧から[Text]プロパティの値を変更します。"品名"に変更します。


[Width]プロパティの値も変更します。大きい値にすると幅が広くなります。"180"に変更しました。


左側のエリアの[メンバー]のリストで、2番目のColumnHeaderの項目を選択し、Textプロパティの値を変更します。"価格"に変更します。


左側のエリアの[メンバー]のリストで、3番目のColumnHeaderの項目を選択し、Textプロパティの値を変更します。"在庫"に変更します。


左側のエリアの[メンバー]のリストで、4番目のColumnHeaderの項目を選択し、Textプロパティの値を変更し"説明文"に変更します。 Widthプロパティの値も"180"に変更します。
変更後[OK]ボタンをクリックしてウィンドウを閉じます。


フォームデザイナに戻ります。Columnプロパティの設定内容が反映され、ヘッダのキャプション文字列とカラムの幅が変更できています。


プロジェクトを実行します。下図のウィンドウが表示されます。カラムの幅やヘッダのキャプションが変更できています。


[Add]ボタンをクリックします。項目が追加されました。


リストビューに項目の追加ができました。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
掲載日: 2011-09-04
iPentec all rights reserverd.