比如电击完下拉框,为了让用户看到更多的信息,可以让他看见编号 和内容两个并列的列是从数据库取出来的两列,如
001   农业
002   工业
003   渔业
…………
而选择了其中一项后,text里只保留   农业
最好不要
Combo1.AddItem rs1.Fields("id").Value & "  " & rs1.Fields("name").Value
这样如果其中某个字段很长的话,就每列对的不齐了

解决方案 »

  1.   

    Combo1.AddItem format(trim(rs1.Fields("id").Value),"0000") & "  " & rs1.Fields("name").Value怎么可能对不齐呢???
      

  2.   

    不怎么明白楼主的意思。是在COMBO中选择完后要求COMBO的TEXT中之保留一项?我们在项目中使用统一规定的方法:TEXTBOX+LISTVIEW。可能复杂点,但是规范。
      

  3.   

    就是说我编号对我没有用,只是为了让他们看的,选完后相当于 combo1.text=“农业”而不是 combo1.text="001  农业"
      

  4.   

    Private Sub Combo1_Click()
    if instr(combo1," ")>0 then  combo1= trim(mid(combo1,5))
    End Sub
      

  5.   

    Dim s() As String
    Dim X As String    X = Trim(combo1.Text)
        s = Split(X, " ")
        If combo1.Text <> "" Then
            Text1.Text = s(1)
            Me.Hide
        End If
      

  6.   

    Dim s() As String
    Dim X As String    X = Trim(combo1.Text)
        s = Split(X, " ")
        If combo1.Text <> "" Then
            combo1.Text = s(1)
        End If
      

  7.   

    Option Explicit'首先 工程 部件中 加载  Microsoft Forms 2.0 Object Library
    '然后,在窗体上画一个 Microsoft Forms 2.0 Object Library控件组中的combobox
    Private Sub ComboBox1_Click()
        ComboBox1.Text = ComboBox1.List(ComboBox1.ListIndex, 1)
    End SubPrivate Sub Form_Load()
        ComboBox1.ColumnCount = 2
        ComboBox1.ListWidth = "6 cm"
        ComboBox1.ColumnWidths = "3 cm;3 cm"
        Dim i As Long
        For i = 0 To 1000
            ComboBox1.AddItem "num " + CStr(i)
            ComboBox1.List(i, 1) = "test " + CStr(i)
        Next
    End Sub
    这样,就ok了
      

  8.   

    哈哈,谢谢 rainstormmaster(暴风雨 v2.0) 
    这玩意儿好
      

  9.   

    谢谢rainstormmaster( v2.0)的帮助,上面的问题解决了,看来暴风雨对控件比较了解,能不能帮助另一个combo问题,就是点吉完combo后下面后出现象TreeView控件那样分级的列出来,比如
    一级   二级     三级农业  
          种植业    水稻
                    玉米     
          
          养殖业    猪
                    牛工业
    渔业
    大致就这么个意思,只要能体现出来是分级的然后选择完一个,返回text里面第三级的内容就可以了,谢谢了,答完就揭贴,大家也帮忙啊
      

  10.   

    rainstormmaster的方法不错就可以了,不过好象计量单位错了,应该是磅或者不加
    ComboBox1.ListWidth = "6 cm"  
    ComboBox1.ColumnWidths = "3 cm;3 cm"
      

  11.   

    顶rainstormmaster(暴风雨 v2.0)
      

  12.   

    Option Explicit
    Private Type mTest
        s As String
        num As Long
    End Type
    Dim m() As mTestPrivate Sub ComboBox1_Click()
        Dim i As Long
        i = m(ComboBox1.ListIndex).num
        ComboBox1.Text = ComboBox1.List(ComboBox1.ListIndex, i - 1)
    End SubPrivate Sub Form_Load()
        
        ReDim m(8)
        m(0).s = "农业"
        m(0).num = 1
        m(1).s = "种植业"
        m(1).num = 2
        m(2).s = "水稻"
        m(2).num = 3
        m(3).s = "玉米"
        m(3).num = 3
        m(4).s = "养殖业"
        m(4).num = 2
        m(5).s = "猪"
        m(5).num = 3
        m(6).s = "牛"
        m(6).num = 3
        m(7).s = "工业"
        m(7).num = 1
        m(8).s = "渔业"
        m(8).num = 1
        ComboBox1.ColumnCount = 3
        ComboBox1.ListWidth = "9 cm"
        ComboBox1.ColumnWidths = "3 cm;3 cm;3 cm"
        Dim i As Long
        For i = 0 To UBound(m)
            If m(i).num = 1 Then
                ComboBox1.AddItem m(i).s
                ComboBox1.List(i, 1) = ""
                ComboBox1.List(i, 2) = ""
            ElseIf m(i).num = 2 Then
                ComboBox1.AddItem ""
                ComboBox1.List(i, 1) = m(i).s
                ComboBox1.List(i, 2) = ""
            ElseIf m(i).num = 3 Then
                ComboBox1.AddItem ""
                ComboBox1.List(i, 1) = ""
                ComboBox1.List(i, 2) = m(i).s
            End If
        Next
    End Sub
      

  13.   

    这个可以用Text + Button + TreeView来解决。
    点击button,就出来Treeview,然后选择其中的Node.
    可以把这个写成一个控件