我本想用chr(13)来换行的,但是在listbox中总是不行,看来只能做成既有垂直又有水平的滚动条咯,希望得到各位高手的帮助。

解决方案 »

  1.   

    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Const LB_SETHORIZONTALEXTENT = &H194Private Sub Demo_LBox_GotFocus()
        Dim i As Integer
        Dim List_MaxL As Integer
        
        '  获得选项内容的最大长度
        For i = 0 To Demo_LBox.ListCount - 1
            If Len(Demo_LBox.List(i)) > List_MaxL Then
                List_MaxL = Len(Demo_LBox.List(i))
            End If
        Next i
        
        '  判断是否内容显示不完全,如果是则添加水平滚动条
        If Me.TextWidth("x") * List_MaxL > Demo_LBox.Width Then
            SendMessage Demo_LBox.hwnd, LB_SETHORIZONTALEXTENT, Me.TextWidth("x") * List_MaxL, ByVal 0&
        End If
    End SubPrivate Sub Form_Load()
        Dim i As Integer
        
        '  为ListBox控件添加选项
        For i = 0 To 10
            Demo_LBox.AddItem ("This is long item " + CStr(i))
        Next i
        
        '  设置窗体坐标尺度模式和字体大小
        Me.ScaleMode = vbPixels
        Me.FontSize = Demo_LBox.FontSize
    End Sub