投稿日 | : 2004/11/20(Sat) 15:35 |
投稿者 | : jikoryuu |
Eメール | : |
URL | : |
タイトル | : Re^3: リストビューとリッチテキストボックスを使用できるのなら |
これは失礼しました。不注意で一部のプロパティ設定を記載するのを忘れていたようです。
基本的な機能についてはヘルプやWeb等で調べてください。
以下の2つのイベントのコードを置き換えてください。
Private Sub Command1_Click()
Dim oli As ListItem
Dim oSi As ListSubItem
Dim c1 As Single
Dim c2 As Single
Dim f As Single
Dim i As Long
With ListView1
Combo1.Clear
.ListItems.Clear
f = Font.Size 'テキストの幅を取得する為、Formのフォントを変更(後に元に戻します。)
Font.Size = .Font.Size
For i = 1 To 10
'リストビューにリストを追加します。ここではテキストの最大幅に合わせていますが、
'テキスト幅を固定することができる場合などは調整してください。
'この場合、プロパティで予め設定しておくことができます。
'その場合は、ループ終了後の幅設定は必要ありません。
Set oli = .ListItems.Add(, , "name1")
If c1 < TextWidth(oli.Text) Then c1 = TextWidth(oli.Width)
Set oSi = oli.ListSubItems.Add(, , Format(Now() + i, "yyyy/mm/dd"))
oSi.ForeColor = vbRed
If c2 < TextWidth(oSi.Text) Then c2 = TextWidth(oSi.Text) + 175
If oli.Text & " " & oSi.Text = RichTextBox1.Text Then
oli.Selected = True
End If
Combo1.AddItem oli.Text & " " & oSi.Text
Next
'上で述べている幅設定
.ColumnHeaders(1).Width = c1 - 75
.ColumnHeaders(2).Width = c2
'リストアイテム数により高さを調節しています。
'大きくなりすぎる場合はiが一定以上の行数にならないようにしてください。
.Height = (i - 1) * .ListItems(1).Height
Font.Size = f 'Formのフォントサイズを元に戻します。
.ZOrder 0 '最前面にします。
.Visible = True
On Error Resume Next
.SetFocus
End With
End Sub
Private Sub Form_Load()
With ListView1
.BorderStyle = ccNone
.View = lvwReport 'レポート形式(詳細表示)
.FullRowSelect = True '行全体を選択
.GridLines = False '境界線を表示しない
.HideColumnHeaders = True 'カラムヘッダ(列見出し)を表示しない
.LabelEdit = lvwManual 'リストアイテム編集を手動()で指示する
.ColumnHeaders.Add , , "" 'カラムヘッダ(列見出し)の追加
.ColumnHeaders.Add , , "" 'もうひとつ追加
.Top = 1200
.Left = 240
.Visible = False
End With
With RichTextBox1
.Left = 210
.Top = 870
.Width = 2745
.Height = 345
End With
With Command1
.Left = 2670
.Top = 915
.Width = 255
.Height = 255
.Font.Name = "Marlett" 'Windowsのコントロール用フォント
.Caption = 6 'コンボボックスのボタンの逆三角
.ZOrder 0
End With
With Combo1
.Left = 210
.Top = 300
.Width = 2745
End With
Command1_Click
ListView1.Visible = False
End Sub