VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2003/03/27(Thu) 19:47
投稿者魔界の仮面弁士
Eメール
URL
タイトルRe^3: ListViewについて

> 動的に変更できるということなのですが、
> 下記の様なロジックを作成した時に、実際に画面が起動して

ListView.Iconsを動的に変更する事はできますが、変更すると、
既にListViewに登録したListItem全てが、その影響を受けます。



> 項目1〜10をListImage1から、項目11〜20をListImage2から、といったように

ImageListとListImageは別物なので、注意しましょう。(^^;)


それはさておき、ListViewと関連付けられるのは、一つのImageListだけなので、
表示させたい画像全てを一つのImageListにまとめておき、それをListView.Iconsに
割り当てるようにする必要があると思います。
  ImageList0.ListImages.Clear
  For Each LI In ImageList1.ListImages
     ImageList0.ListImages.Add , LI.Key, LI.Picture
  Next
  For Each LI In ImageList2.ListImages
     ImageList0.ListImages.Add , LI.Key, LI.Picture
  Next
  Set ListView1.Icons = ImageList0


> 1件〜10件のデータは画像が表示されません。

ListView.Iconsを変更すると、既存のListItem.Iconはクリアされますので、
ListView.Iconsの変更後は、ListItem.Iconの値を再設定する必要があります。


Option Explicit

Private Sub Form_Load()
    Me.ScaleMode = vbPixels
    Picture1.Move 0, 0, 16, 16
    Picture1.AutoRedraw = True
    Picture1.Visible = False
    Set ListView1.Icons = Nothing
    ImageList1(0).ListImages.Clear
    ImageList1(1).ListImages.Clear

    'ImageList1, ImageList2, ListView1の設定
    Dim I As Byte
    Dim X As String
    For I = 0 To 7
        X = "X" & CStr(I)
        Picture1.BackColor = QBColor(I)
        ImageList1(0).ListImages.Add , X, Picture1.Image
        Picture1.BackColor = QBColor(I + 8)
        ImageList1(1).ListImages.Add , X, Picture1.Image
        ListView1.ListItems.Add(Text:=X).Tag = X
    Next
    Command1(0).Caption = "ImageList1(0)の割り当て"
    Command1(1).Caption = "ImageList1(1)の割り当て"
End Sub

Private Sub Command1_Click(Index As Integer)
    Dim LI As ListItem

    'イメージリストの割り当てを変更する
    Set ListView1.Icons = ImageList1(Index)

    'ListView.Iconsを変更すると、ListItems.Iconの値が
    'クリアされてしまうので、もう一度設定しなおす
    For Each LI In ListView1.ListItems
        LI.Icon = LI.Tag
    Next
End Sub


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -