リストボックスを両方向にスクロールするには?


パルマ  2003-09-11 00:46:14  No: 108638

さきほど投稿したものですが、
ファイルリストボックスではなく、
普通のリストボックスの間違いでした。
すみません。

改めて質問させていただきます。

リストボックスの内容が横に長すぎて、全部を見ることができません。
Columnプロパティを変えるのではなくて、
両方向にスクロールをさせたいのですが、
どうやってよいのかわかりません。

わかる方アドバイスよろしくお願いします。


nanashi  2003-09-11 01:31:26  No: 108639

適当ですけど、こんな感じかな。

'APIと定数の宣言
Private Declare Function SendMessage _
    Lib "user32.dll" Alias "SendMessageA" _
    (ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, lParam As Any) _
        As Long

Private Const LB_SETHORIZONTALEXTENT As Long = &H194&

    '横スクロールバーを追加
    With List1
        For lCnt = 0 To .ListCount - 1
            lBuff = Me.TextWidth(.List(lCnt)) 'フォームのフォント設定と違う場合は注意!
            If lBuff > lWidth Then
                lWidth = lBuff
            End If
        Next
        
        lWidth = lWidth / Screen.TwipsPerPixelX + 5 '適当に余白を持たせます。
        Call SendMessage(.hwnd, LB_SETHORIZONTALEXTENT, lWidth, ByVal 0&)
    End With


パルマ  2003-09-11 01:36:05  No: 108640

レスありがとうございます。

早速やってみたいと思います。

ところで書き忘れたんですけど、
このやり方はVB5.0でも使えますか?


nanashi  2003-09-11 02:22:30  No: 108641

試してないけど大丈夫だと思う。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加