投稿日 | : 2005/01/17(Mon) 00:48 |
投稿者 | : みかん |
Eメール | : |
URL | : |
タイトル | : ListView 幅設定が0以外は無視される |
環境:WindowsXP VB6.0(SP6)
ListViewの幅設定をしたところ0以外の数値を設定しても値が無視され、
全て0(幅なし)扱いになります。0を設定すると初期幅で表示できます。
以下のようなモジュールを使って設定しているのですが、
他のListViewでは問題なく設定できたのに、設定できないListViewが出てきました。
他のListViewとの違いは、フレーム上に乗っていること位です。
このような現象をご存知の方がいらっしゃればアドバイスをお願いします。
Public Sub gsubLsvColSet( _
ByRef lvwCtrl As ListView, _
ByRef strLvwColTitle() As Variant, _
ByRef intLvwColWidth() As Variant, _
ByRef intLvwColAlignment() As Variant)
Dim clmX As ColumnHeader
Dim nIndex As Integer
lvwCtrl.ListItems.Clear 'リストを削除
lvwCtrl.View = lvwReport
lvwCtrl.ColumnHeaders.Clear
For nIndex = 0 To UBound(strLvwColTitle)
Set clmX = lvwCtrl.ColumnHeaders.Add()
clmX.Text = strLvwColTitle(nIndex)
'-1は幅なし(0)とする
If intLvwColWidth(nIndex) = -1 Then
clmX.Width = 0
ElseIf intLvwColWidth(nIndex) > 0 Then
clmX.Width = intLvwColWidth(nIndex)
End If
'先頭列(text)は左寄せのみ
If nIndex > 0 Then
clmX.Alignment = intLvwColAlignment(nIndex)
End If
Next nIndex
End Sub