リストビューの全行の高さを変更したいと思っています。
listview1.listitems(1).height=1000としましたが、「値の取得のみが可能なプロパティです。」とエラーメッセージが出てしまいます。
不可能なのでしょうか?
vb6(sp6)です。
ListItem の高さは、設定されているフォントや
View プロパティの値に応じて自動的に調整されます。
Debug.Print Me.ListView1.ListItems(1).Height
Me.ListView1.Font.Size = Me.ListView1.Font.Size * 1.5
Debug.Print Me.ListView1.ListItems(1).Height
> 不可能なのでしょうか?
フォントサイズを変更できない場合は、アイコンサイズを使うことで高さを増やせます。
Option Explicit
Private Sub Form_Load()
'小さな画像を作成
Dim dummyPicture As Picture
With Me.Controls.Add("VB.PictureBox", "picDummy", Me)
.Visible = False
.Move 0, 0, 0, 0
Set dummyPicture = .Image
Me.Controls.Remove "picDummy"
End With
'高さ 35 の画像として、イメージリストに割り当てる
Me.ImageList1.ListImages.Clear
Me.ImageList1.ImageHeight = 35
Me.ImageList1.ImageWidth = 1 '幅は 0 にできないので、最小値 1 を指定
Me.ImageList1.ListImages.Add Key:="Dummy", Picture:=Me.Image
'ListView にイメージリストを割り当てる
'詳細モード(lvwReport)の場合は SmallIcons プロパティを使う
Me.ListView1.View = lvwReport
Set Me.ListView1.SmallIcons = Me.ImageList1
'結果を比較してみる
Initialize ListView1 'SmallIcons 指定あり
Initialize ListView2 'SmallIcons 指定なし
End Sub
Private Sub Initialize(ByVal lvw As ListView)
lvw.BackColor = &H80FF&
lvw.Font.Name = "MS ゴシック"
lvw.Font.Charset = 128
lvw.Font.Size = 12
lvw.ColumnHeaders.Clear
lvw.ColumnHeaders.Add Text:="Column 1"
With lvw.ListItems
Dim i As Integer
For i = 1 To 50
.Add(Text:="Item" & Str(i)).ForeColor = QBColor(i And &HF)
Next
End With
End Sub
ごめんなさい。
Viewプロパティはreportでした。
フォントサイズは、リストビューのところだけ大きくすると変なので。
データを次のようにワザと改行させたりさせましたが、駄目でした。
space(1) & vbcrlf & "てすと"
1マススペースが空いただけでした。
教えていただいたアイコンの方法で挑戦しようと思います。
ただ、リストビューでだけ大きなアイコンを表示するのは変なので、ColumnHeaderのwidthを0にしようかと思っています。
結果はまたご報告します。
ありがとうございました。
できました!
ありがとうございました。
勉強になりました。
ツイート | ![]() |