ImageListコントロールに登録されているイメージを使用するには主に2つの方法があります。
- ImageListのDrawメソッドを使用する
- ButtonコントロールやListViewコントロールが持つImageListプロパティ、SmallImageListプロパティ、LargeImageListプロパティなどに指定しコントロールに表示する
まずDrawメソッドですが、下記に示す例のようにGraphics上の指定された位置に、描画したいイメージのインデックスを指定して描画を行います。
次に、コントロールで描画する場合ですが、使用するコントロールによってImageListを指定できるプロパティが異なります。
たとえば、Buttonコントロールの場合はImageListプロパティ、ListViewコントロールの場合はSmallImageListプロパティ、LargeImageListプロパティ、StateImageListプロパティなどがあります。~ImageListというプロパティであればImageListを指定できると考えてよいでしょう。
コントロールでImageListのイメージを使用する場合はImageIndexプロパティに使用したいイメージのインデックスを指定します。
下記はImageListのイメージを使用する例です。
[イメージを描画]ボタンをクリックすると、フォーム上にアイコンを描画するとともに、リストビュー各項目にもイメージを表示します。
VBの例
' [イメージを描画]ボタンクリック時の処理
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
'ウィンドウハンドルの作成
Dim g As Graphics = Graphics.FromHwnd(Me.Handle)
'イメージリストにあるイメージをフォームに描画する
ImageList1.Draw(g, New Point(110, 12), 0)
ImageList1.Draw(g, New Point(140, 12), 1)
'★★リストビューに表示する小さなアイコンにImageList1を設定する★★
ListView1.SmallImageList = ImageList1
ListView1.View = View.Details
'リストビューに列を作成する
ListView1.Columns.Add("アイコン")
ListView1.Columns.Add("名前")
'リストビューに追加する1つ目の項目を作成
Dim item1 As New ListViewItem
item1.ImageIndex = 0 '★★ImageListの1つ目のイメージを使用する★★
item1.SubItems.Add("Camera")
'リストビューに追加する2つ目の項目を作成
Dim item2 As New ListViewItem
item2.ImageIndex = 1 '★★ImageListの1つ目のイメージを使用する★★
item2.SubItems.Add("PC")
'リストビューに項目を追加する
ListView1.Items.Add(item1)
ListView1.Items.Add(item2)
End Sub
C#の例
// [イメージを描画]ボタンクリック時の処理
private void button1_Click(object sender, EventArgs e)
{
// ウィンドウハンドルの作成
Graphics g = Graphics.FromHwnd(this.Handle);
// イメージリストにあるイメージをフォームに描画する
imageList1.Draw(g, new Point(110, 12), 0);
imageList1.Draw(g, new Point(140, 12), 1);
// ★★リストビューに表示する小さなアイコンにImageList1を設定する★★
listView1.SmallImageList = imageList1;
listView1.View = View.Details;
// リストビューに列を作成する
listView1.Columns.Add("アイコン");
listView1.Columns.Add("名前");
// リストビューに追加する1つ目の項目を作成
ListViewItem item1 = new ListViewItem();
item1.ImageIndex = 0; // ★★ImageListの1つ目のイメージを使用する★★
item1.SubItems.Add("Camera");
// リストビューに追加する2つ目の項目を作成
ListViewItem item2 = new ListViewItem();
item2.ImageIndex = 1; // ★★ImageListの1つ目のイメージを使用する★★
item2.SubItems.Add("PC");
// リストビューに項目を追加する
listView1.Items.Add(item1);
listView1.Items.Add(item2);
}
Please follow and like us:

コメント