我想根据ComboBox控件的listindex值的变化设置一个变量的值,我用的ComboBox控件的Style属性值是2(Dropdowm list),我试过在change事件里响应不到.请各位仁兄帮忙,小弟急用!谢谢!

解决方案 »

  1.   

    '********************************************************************************************************
    '作用:从某个combo控件中读取某个字符串的index值,在把combo控件的style属性为dropdownlist时候,可以利用这个函数来取得
    '      某个字符串在这个控件中的index值,这样,就实现了,既禁止用户修改里面内容又可以在代码里指定该控件显示的字符串
    '用法: combobox1.ListIndex = getindex(strval, combobox1)
    '返回值:-1时为取值失败,其他返回值就是要求的index
    '********************************************************************************************************
    Public Function GetCmbIndex(ByVal strVal As String, ByVal Cbo As ComboBox) As Integer
       Dim i As Integer
      
       For i = 0 To Cbo.ListCount - 1
          If Trim(Cbo.List(i)) = Trim(strVal) Then
             GetCmbIndex = i
             GoTo exitsub
          End If
       Next
       GetCmbIndex = -1
    exitsub:
       Exit Function
    End Function
      

  2.   

    楼上的朋友,我不是想得到你说的这种结果,我就想是在combobox控件当中的显示内容改变时,去改变一个变量的值,请多多指教
      

  3.   

    呵呵,change事件不相应了,为什么不试试Click事件哪?放心大胆的使吧。
      

  4.   

    Dim ItemValues() As String      '定义一个数组Private Sub Combo1_Click()               ' 用click 事件    cmd.CommandText = "SELECT * FROM 区域设置 WHERE 区域编号=?"
        cmd.Parameters(0).Value = ItemValue(Combo1.ListIndex)         '取出它的值
        
    End SubPrivate Sub Form_Load()    cmd.CommandText = "Select  * From 区域设置 ORDER BY 区域编号"
        Set Rst = cmd.Execute
        If Rst.EOF Then Exit Sub
        List1.Clear
        Do Until Rst.EOF
            Combo1.AddItem Trim(Rst!区域名)
            ReDim Preserve ItemValue(Combo1.NewIndex)            '保留原来的值
            ItemValue(Combo1.NewIndex) = Trim(Rst!区域编号)      '给动态数组赋值
            Rst.MoveNext
        Loop
    End Sub
      

  5.   

    应该在click或者lostfocus中使用
      

  6.   

    研究一下change和click的区别~那你就有专研的初步精神啦~祝你学有所成~~:)