在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
      

  2.   

    在ListBox控件中超过一定的记录,就没办法显示出来,请问有办法加个滚动条吗?具体一些,自动会增加的
      

  3.   

    listbox的条目数量被定义成integer,你不会超出范围了吧?是的话,就麻烦了
      

  4.   

    Private Sub Form_Load()
    For i = 0 To 10000
    List1.AddItem i
    NextEnd Sub看看效果
      

  5.   

    to online(龙卷风V2.0--再战江湖):你好!
    这样,数据形成多列
    产生水平滚动条
      

  6.   

    一般來說只要listbox的listcount在integer的最大值范圍內時就不會出現問題
      

  7.   

    LIST中当列出的内容超过显示范围的时候,会自动添加一个垂直滚动条的呀
      

  8.   

    我看你是将listbox的Columns属性设置为>0的值了。
    你只需将Columns属性设置为0,就ok了。
      

  9.   

    谢谢各位了
    也许column默认状态就是0,所以不可理解这种“怪”现象
    mylzw(俺是天空里地一片云)是正确的