投稿時間: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
|