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を愛用