我想设置Combo1下拉时,显示10个数据项,如何设置!
For i = 1 To 10
Combo1.AddItem ("数据项")
Next i
更改combo1 style
For i = 1 To 10
Combo1.AddItem "hhhh"
Next i
上述操作只是向Combo1中添加了10个数据,我要的是当点开下拉时,10个数据全部显示,而不是还要用滑动条来滚动显示10个数据。
'设置 Combo 下拉的高度
'单位为 pixels
Public Sub SetComboHeight(oComboBox As ComboBox, lNewHeight As Long)
Dim oldscalemode As Integer
If TypeOf oComboBox.Parent Is Frame Then Exit Sub
oldscalemode = oComboBox.Parent.ScaleMode
oComboBox.Parent.ScaleMode = vbPixels
MoveWindow oComboBox.hwnd, oComboBox.Left, oComboBox.Top, oComboBox.Width, lNewHeight, 1
oComboBox.Parent.ScaleMode = oldscalemode
End Sub
Private Sub Form_Load()
isDo = True
Combo1.AddItem "FDSAF "
Combo1.AddItem "FDSAF "
Combo1.AddItem "FDSAF "
Combo1.AddItem "FDSAF "
Combo1.AddItem "FDSAF "
Combo1.AddItem "FDSAF "
Combo1.AddItem "FDSAF "
Combo1.AddItem "FDSAF "
Combo1.AddItem "FDSAF "
Combo1.AddItem "FDSAF "
Combo1.AddItem "FDSAF "
Combo1.AddItem "FDSAF "
Combo1.AddItem "FDSAF "
Combo1.AddItem "FDSAF "
Combo1.AddItem "FDSAF "
Combo1.AddItem "FDSAF "
Combo1.AddItem "FDSAF "
Combo1.AddItem "FDSAF "
Combo1.AddItem "FDSAF "
Combo1.AddItem "FDSAF "
End Sub
Private Sub Command1_Click() '改变combo1下拉的高度
Call SetComboHeight(Combo1, 250)
End Sub
CSDN搜索的,试试行不行
其实用VB.net就可以了 有个属性可以设,用其他combobox控件也可以
更改下拉区的高度:
VB code
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function GetWindowRect Lib "user32" (ByVal hWnd As Long, _
lpRect As RECT) As Long
Private Declare Function ScreenToClientAny Lib "user32" Alias "ScreenToClient" _
(ByVal hWnd As Long, lpPoint As Any) As Long
Private Declare Function MoveWindow Lib "user32" (ByVal hWnd As Long, _
ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, _
ByVal nHeight As Long, ByVal bRepaint As Long) As Long
' Set a new height for the list area of a ComboBox control
'
' NEWHEIGHT is measured in pixels
Sub ComboBoxSetHeight(CB As ComboBox, ByVal newHeight As Long)
Dim lpRect As RECT
Dim wi As Long
' get combobox rectangle, relative to screen
GetWindowRect CB.hWnd, lpRect
wi = lpRect.Right - lpRect.Left
' convert to form's client coordinates
ScreenToClientAny CB.Parent.hWnd, lpRect
' enforce the new height
MoveWindow CB.hWnd, lpRect.Left, lpRect.Top, wi, newHeight, True
End Sub