listviewコントロールはデータ專案をアイコン表示や詳細表示などにより一覧表示するためのもので、windowsのエクスプローラでもおなじみのコントロールだ。その表示スタイルとしては、次のような4種類が用意されている。
listviewコントロールの4つの表示スタイル
左から順番に、「大きなアイコン」(largeicon)、「小さなアイコン」(smallicon)、「一覧」(list)、「詳細」(details)という表示になっている。詳しくは、msdn「view列挙體
」を參照してほしい。
詳細表示では、1つのデータ專案につき複數の種類の情報を列ごとに表示できる。各列の値によりデータ專案の並べ替えも可能だ。
listviewコントロールのヘッダ專案の作成
ここでは、listviewコントロールへ実際のデータを追加する前に、まずlistviewコントロールのヘッダ專案を作成しておこう。
なお、上記4種類の表示スタイルのうちヘッダ專案が表示されるのは、listviewコントロールのviewプロパティが「view列挙體(system.windows.forms名前空間)のdetails(=詳細表示)」に設定されているときのみである。
ヘッダ專案を作成するには、listviewコントロールのcolumnsプロパティのaddメソッド
もしくはaddrangeメソッド
を使えばよい。複數のヘッダ專案を作成したい場合には、複數をまとめて追加できるaddrangeメソッドが便利だ。よって本稿のサンプル・プログラムは、このaddrangeメソッドを利用する。
addrangeメソッドのパラメータには、columnheaderオブジェクト(system.windows.forms名前空間)の配列を指定する。1つのcolumnheaderオブジェクトが、1つのヘッダ專案に対応する。
具體的なサンプル・コードは、以下のとおりだ。ここではヘッダ專案として3つの列を設定している。
// listviewコントロールを初期化します。
private void initializelistview()
;listview1.columns.addrange(colheaderregvalue);
}listviewコントロールにヘッダ專案を追加するサンプル・コード(c#)
' listviewコントロールを初期化します。
private sub initializelistview()
' listviewコントロールのプロパティを設定
listview1.fullrowselect = true
listview1.gridlines = true
listview1.sorting = sortorder.ascending
listview1.view = view.details
' 列(コラム)ヘッダの作成
columnname = new columnheader
columntype = new columnheader
columndata = new columnheader
columnname.text = "名前"
columnname.width = 100
columntype.text = "種類"
columntype.width = 60
columndata.text = "データ"
columndata.width = 150
dim colheaderregvalue() as columnheader = _
listview1.columns.addrange(colheaderregvalue)
end sub
listviewコントロールにヘッダ專案を追加するサンプル・コード(vb.net)
上記コードの詳細は割愛するが、最初にlistviewコントロールのプロパティ設定で、行選択モード(fullrowselectプロパティ)、グリッド線表示(gridlinesプロパティ)、ソート機能(sortingプロパティ)、詳細表示(viewプロパティ)の設定を行っている。さらに続けて列(コラム)ヘッダの作成で、「名前」(列幅:100)、「種類」(列幅:60)、「データ」(列幅:150)という3つのcolumnheaderオブジェクトを作成して、それをaddrangeメソッドによりヘッダ專案として登入している。
ここではコードによりヘッダ專案の実裝を行ったが、visual studio .netのideの[プロパティ]ウィンドウにある「columnsプロパティ」からは、guiにより簡単に設定することもできる。
listviewコントロールへのデータの追加
次にlistviewコントロールへ実際のデータを追加する。
これにはlistviewコントロールのitemsプロパティのaddメソッド
もしくはaddrangeメソッド
を使えばよい。これに関しても複數をまとめて追加するにはaddrangeメソッドを使う。本稿のサンプル・コードではデータを1つずつ登入するので、addメソッドを使用する。
addメソッドのパラメータには、listviewitemオブジェクト(system.windows.forms名前空間)を指定する。1つのlistviewitemオブジェクトが、1つのデータに対応する。
先ほどのサンプル・コードでは3つの列專案を作ったが、この場合には1つのデータには3つの文字列專案が存在することになる。よって、listviewitemオブジェクトには3つの文字列データを含める必要がある。これを実現するには、listviewitemクラスのコンストラクタのパラメータで、それらを配列として指定すればよい。
具體的には、以下のようなサンプル・コードになる。
// listviewコントロールのデータを更新します。
private void refreshlistview()
;listview1.items.add(new listviewitem(item1));
string item2 = ;
listview1.items.add(new listviewitem(item2));
string item3 = ;
listview1.items.add(new listviewitem(item3));
}listviewコントロールのデータを追加するサンプル・コード(c#)
' listviewコントロールのデータを更新します。
private sub refreshlistview()
' listviewコントロールのデータをすべて消去します。
listview1.items.clear()
' listviewコントロールにデータを追加します。
dim item1() as string =
listview1.items.add(new listviewitem(item1))
dim item2() as string =
listview1.items.add(new listviewitem(item2))
dim item3() as string =
listview1.items.add(new listviewitem(item3))
end sub
listviewコントロールのデータを追加するサンプル・コード(vb.net)
上記のコードにあるitemsプロパティのclearメソッドは、既存のデータ專案をすべて消去するためのものだ。
以上のサンプル・プログラムを実行したのが次の畫面である。
listviewコントロールのサンプル・プログラムの実行結果
Android 諮詢專案之listView多條目
介面卡 首先多條目 我們要實現兩個方法 getviewtypecount 多少種條目 getitemviewtype 獲取當前條目的型別 0,1,2,3 有多少種型別 override public int getviewtypecount 條目的型別用int值來區分,從0開始排序,0123.ove...
python追加 python列表追加
看到新知識就在此不斷新增,鞏固,未完待續.對於只包含整數的列表,python還提供了另外的幾種建立列表的方法 1 range n,m 函式range返回乙個整數列表,列表從函式的第乙個引數n開始,最後乙個引數m結束,但不包含最後乙個引數m,相鄰兩數之間差值為1.a range 1,4 printa ...
解決ListView巢狀ListView遇到的問題
listview巢狀會造成的問題主要是子listview的高度錯誤導致內容不能正常顯示完,解決這個問題,我個人第乙個想法就是重新計算子listview的高度,如下 private void setlistviewheightbasedonchildren listview listview int ...