リストボックスで長い文字列を見るには?

解決


初心者  2004-01-07 22:26:05  No: 111109

リストボックスでWIDTHのサイズより
長い文字列を最後まで見れるようにしたいのですが
水平スクロールバーを使ってどのようにすればよいでしょうか?


魔界の仮面弁士  2004-01-07 22:44:14  No: 111110

VB.NETの場合は、HorizontalScrollbarプロパティをTrueにすればOKです。

VB6の場合は、その機能が用意されていないので、APIに頼る必要があります。
(LB_SETHORIZONTALEXTENTメッセージに付いて調べてみてください)


たかみちえ  URL  2004-01-07 22:57:42  No: 111111

水平スクロールバーという手もありますけど、
ツールチップやステータスバーを利用するという手もありますよ。
  場所にも夜かもしれませんけど、水平バーは動かしにくいですからね。キーボードの十字ボタンじゃ動かないし、ホイールでもできないから。


初心者  2004-01-07 23:22:43  No: 111112

APIというのがさっぱりわからないのでもう少し勉強してみます。
ありがとうございました。


初心者  2004-01-08 01:12:01  No: 111113

Declare Function SendMessageByNum Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Public Const LB_SETHORIZONTALEXTENT = &H194

Private Sub Form_Load()
    Dim lngWidth As Long
    Dim i As Integer
    List1.AddItem text1.Text

    For i = 0 To List1.ListCount - 1
        If lngWidth < TextWidth(List1.List(i) & " ") Then
            lngWidth = TextWidth(List1.List(i) & " ")
        End If
    Next

If ScaleMode = vbTwips Then
        lngWidth = lngWidth / Screen.TwipsPerPixelX
    End If

Call SendMessageByNum(List1.hwnd, LB_SETHORIZONTALEXTENT,lngWidth, 0)
End Sub

こんなかんじで何とかできました。
ありがとうございました。


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

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






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