SendMessage(ComboBox1.hwnd,  CB_SETDROPPEDWIDTH,500,0)//500长度自定

解决方案 »

  1.   

    Private Sub Combo1_Click()
    Combo1.Width = Len(Combo1.Text) * 200
    End Sub
      

  2.   

    根据字体大小来计算
    字号指字的大小规格。计算机排版一般采用“号数制”或“磅数制”来表示。
    “号数制”即把字的大小用号数来表示,各号字的实际大小参下表:
    小七号 七号 小六号 六号 小五号 五号 小四号 四号 小三号
    1.84 2.12 2.45 2.81 3.15 3.70 4.25 4.93 5.23
    三号 小二 二号 小一 一号 小初 初号
    5.55 6.37 7.80 8.42 9.66 11.1 12.7
    “磅数制”对字的大小以点(Point)来计量。各个国家对其大小规定不尽相同,英美等国规定1磅为0.35146mm,我国为0.35mm。
      

  3.   

    试试combobox的sellength属性吧.
      

  4.   

    声明:
    Private Declare Function SendMessage Lib "USER32" Alias "SendMessageA" _
        (ByVal hwnd As Long, ByVal Msg As Long,ByVal wParam As Long, ByVal _
    lParam As Long) As Long
    Private Const CB_GETDROPPEDWIDTH = &H15F
    Private Const CB_SETDROPPEDWIDTH = &H160
    Private Const CB_ERR = -1
    函数:
    ' 取得 Combo 下拉的宽度
    ' 可以利用该函数比例放大或缩小宽度
    Public Function GetDropdownWidth(cboHwnd As Long) As Long
        Dim lRetVal As Long
        lRetVal = SendMessage(cboHwnd, CB_GETDROPPEDWIDTH, 0, 0)
        If lRetVal <> CB_ERR Then
            GetDropdownWidth = lRetVal
            '单位为 pixels
        Else
            GetDropdownWidth = 0
        End If
    End Function
    '设置 Combo 下拉的宽度
    '单位为 pixels
    Public Function SetDropdownWidth(cboHwnd As _
        Long, NewWidthPixel As Long) As Boolean
        Dim lRetVal As Long
        lRetVal = SendMessage(cboHwnd, _
            CB_SETDROPPEDWIDTH, NewWidthPixel, 0)
        If lRetVal <> CB_ERR Then
            SetDropdownWidth = True
        Else
            SetDropdownWidth = False
        End If
    End Function
      

  5.   

    可以用movewindows函数。
    csdn里有