tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルリストビューへのアイコン表示方法。
記事No8114
投稿日: 2008/09/09(Tue) 16:19
投稿者芸灼朗
使用OS:ウィンドウズ2000
ソフト:vb.net 2003

はじめまして。
リストビューにアイコンを表示する方法がわからず困っています。

理解している範囲は、
リストビューにアイコンという列を作成する。
イメージリストを追加しそこにアイコンを登録する。

不明部分はイメージリストに追加したアイコンをどのように
指定すると、リストビューのアイコン列に表示することができるのか?
という部分が分かりません。

リストビューには
@アイコン、Aファイル名、B拡張子。
という3列を作成し@列にイメージリストに追加した
アイコンを表示させたいのですが、イメージリスト内のアイコンと
リストビューの@列との紐付け方法が分かりません。

過去ログで「リストビュー アイコン」で探してみたのですが
参考となりそうな記事のURLがリンク切れ等となっておりが見つけられませんでした。

以上よろしくお願いします。

[ツリー表示へ]
タイトルRe: リストビューへのアイコン表示方法。
記事No8115
投稿日: 2008/09/09(Tue) 16:49
投稿者ダンボ
http://www.atmarkit.co.jp/fdotnet/dotnettips/336listviewimage/listviewimage.html
http://msdn.microsoft.com/ja-jp/library/ms404308.aspx
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.listview.largeimagelist(VS.80).aspx

などでどうでしょう。

[ツリー表示へ]
タイトルRe^2: リストビューへのアイコン表示方法。
記事No8117
投稿日: 2008/09/09(Tue) 18:00
投稿者芸灼朗
ダンボさん、ありがとうございます。
紹介していただいたURLの一つ目の
> http://www.atmarkit.co.jp/fdotnet/dotnettips/336listviewimage/listviewimage.html
を参考に試したところ、ラージサイズでのアイコン表示は成功しました。

上記のページのコードを以下のように変えたところ本来アイコンが表示される箇所に
アイコンへのフルパスが表示されるようになりました。


    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Dim imageDir As String = "C:\image" ' 画像ディレクトリ
        Dim jpgFiles As String() = System.IO.Directory.GetFiles(imageDir, "*.ico")

        '' **アイコンのサイズを縮小
        Dim width As Integer = 10
        Dim height As Integer = 10

        ImageList1.ImageSize = New Size(width, height)
        ListView1.LargeImageList = ImageList1

        '' **リストビューの表示モードを詳細に変更
        ListView1.View = View.Details

        '' **列を3列追加
        ListView1.Columns.Add("アイコン", 200, HorizontalAlignment.Left)
        ListView1.Columns.Add("ファイル名", 200, HorizontalAlignment.Left)
        ListView1.Columns.Add("拡張子", 200, HorizontalAlignment.Left)

        For i As Integer = 0 To jpgFiles.Length - 1
            Dim original As Image = Bitmap.FromFile(jpgFiles(i))
            Dim thumbnail As Image = createThumbnail(original, width, height)
                                     '' 変更なし。

            ImageList1.Images.Add(thumbnail)
            ListView1.Items.Add(jpgFiles(i), i)

            original.Dispose()
            thumbnail.Dispose()
        Next

    End Sub

詳細モードでアイコンを表示する場合はどのように設定を行えばよいのでしょうか?

追加の質問なのですが教えていただいたURLの記述は画像ファイルをパス指定して
イメージリストに入れ込んでいますが、前もってイメージリストに登録しておいた
画像をそのまま使う、ということはできないのでしょうか?

以上よろしくお願いします

[ツリー表示へ]
タイトルアイコンの詳細表示について自己解決
記事No8118
投稿日: 2008/09/09(Tue) 18:21
投稿者芸灼朗
ListView1.LargeImageList = ImageList1
のヶ所を
ListView1.SmallImageList = ImageList1
とすることで、リストビューの詳細表示にも
アイコンを表示させることができました。

表示する前にフルパスの文字列をクリアすることで
見かけ上アイコンのみの表示ができるようになりました。

[ツリー表示へ]