我在用combobox遇到过两个问题:
1\当style=0时,有些用户就会直接从里面输入数据,
怎样限定用户只能从列表中选择而不能手工输入?
2\当style=2时,虽然可以限制用户不能输入,但当需要修改数据时
比如:cbo1=rs.fields(2)这样就会提示出错,因为cbo1为不可编辑的.
请问如何处理以上两个问题?

解决方案 »

  1.   

    style=0Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer)
    Clipboard.SetText Combo1.Text
    End SubPrivate Sub Combo1_KeyPress(KeyAscii As Integer)
    KeyAscii = 0
    End SubPrivate Sub Form_Load()
    Combo1.AddItem "a"
    Combo1.AddItem "b"
    End Sub还应该禁止通过菜单或shift+insert 粘贴
      

  2.   

    '2\当style=2时,虽然可以限制用户不能输入,但当需要修改数据时
    比如:cbo1=rs.fields(2)这样就会提示出错,因为cbo1为不可编辑的.Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPrivate Const CB_FINDSTRING = &H14Ccbo1.ListIndex = SendMessage(cbo1.hwnd, CB_FINDSTRING, -1, ByVal rs.fields(2))
      

  3.   

    cbo1.Additem rs.fields(2)
    cbo1=rs.fields(2)
      

  4.   

    cbo1.Additem rs.fields(2)
    cbo1=rs.fields(2)
    此方法不错,但若遇到rs.fields(i)为null时就又出现同样的错误了.还请高手继续帮忙,若需要分,在下可另行开贴给分.