comBox1.style = 2 在代码里这样写总是报错,说无法设置属性
在设计里把Style设为2-DropDown  List也报错,说无法设置值,是只可取得值的属性
这是为什么啊,请高手指点,谢谢!!!

解决方案 »

  1.   

    参考:http://www.vbgood.com/vb.good/article-do-view-articleid-3293.htmlPrivate Const GWL_STYLE = (-16)
    Private Const GW_CHILD = 5Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
    Private Declare Function DestroyWindow Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" (ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As LongConst SW_HIDE = 0
    Const SW_SHOW = 5'将  ComboBox 的 Style 改为 2 - DropdownList
    Private Sub Command1_Click()
        Dim ChildHwnd As Long
      
        Combo1.AddItem "One"
        Combo1.AddItem "Two"
        
        ChildHwnd = GetWindow(Combo1.hwnd, GW_CHILD)          '取edit句柄
        Call DestroyWindow(ChildHwnd)                         'Kill edit窗口
      
        '改变cmbDropList的Style,这一语句可有可无~~~~,
        'Call SetWindowLong(Combo1.hwnd, GWL_STYLE, GetWindowLong(Combo1.hwnd, GWL_STYLE) + 1)
      
    End Sub
      

  2.   

    既然在设计的窗体里把Style设为2-DropDown ,为什么还要在代码里写comBox1.style = 2呢?
      

  3.   

    我解决了,为什么在设计里把Style设为2-DropDown  List总报错
    是因为我在初始化的时候给它赋值了
      

  4.   

    在属性窗口中设置style属性为2,没有文本框,只能显示和选择内容,不能输入。
      

  5.   

    Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer)
      KeyCode = 0
    End SubPrivate Sub Combo1_KeyPress(KeyAscii As Integer)
      KeyAscii = 0
    End Sub