combo的style属性被设为1,开始时我只显示combo的输入框,
想在click后改变combo的高度
我用了以下代码:
Private Sub Combo1_Click()
Combo1.Height = 1000
End Sub
发现不能改变,这是什么原因啊?

解决方案 »

  1.   

    好像combo的高度是无法改变的
      

  2.   

    如果combo的属性被设为0时它的高度是不能改变的
    但在combo的属性被设为1时它的属性是可以改变的
      

  3.   

    可以改变,没改变是因为Click事件没有触发,在Private Sub Combo1_Click()行上设置断点可以观察,当Combo的list不为空时,按下向下的方向键事件可被触发,但是height好像只能变大不能变小。
      

  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 LongPrivate Const CB_ERR As Long = -1
    Private Const CB_SETITEMHEIGHT As Long = &H153Private Sub Command1_Click()
    '稍小一点的高度    SendMessage Me.Combo1.hwnd, CB_SETITEMHEIGHT, -1, 50
        Combo1.Refresh
        
    End SubPrivate Sub Command2_Click()
    '稍大一点的高度
        SendMessage Me.Combo1.hwnd, CB_SETITEMHEIGHT, -1, 100
        Combo1.Refresh
        End Sub
      

  5.   

    我理会错楼主的意思了当Style属性设为1时,直接设置Combo.Height可以改变下拉框高度啊。
      

  6.   

    呵呵,COMBO的高度运行时不可调,除非你用API还有点希望,我好像见过有这个功能的程序。
      

  7.   

    combo是不能直接改變高度的,因為它的這個屬性是唯讀的。你可以通過改變字體的大小來改變高度
      

  8.   

    但我不想改变字体的高度,只想改变combo的高度
      

  9.   

    这么处理吧,建立一个UserControl,将你需要设置Enable属性的控件放在UserControl中,设置其Resize属性。另在UserControl中建立一个Enable属性,关联到UserControl(不是关联到控件)然后再将这个UserControl容器放入容器中,就可以使用容器的MouseDown事件了。
    这个方法你也可以将该控件放在PictureBox中,在PictureBox外面再套一层容器也行。反正就是使容器的大小与控件的大小一致就可以了。
      

  10.   

    combo本身的高度是不能像其他如textbox控件那样来调整其高度的。
      

  11.   

    Combo的高度是随着字体的增大而增大的。