|
Изменение высоты выпадающей части комбобокса (Вариант 1) |
|
|
Данный пример покажет, как можно изменить высоту выпадающей части элемента ComboBox в зависимости от высоты формы, на которой элемент расположен. 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
Private Sub Form_Load()
Dim i As Integer ' Заполняем комбобокс значениями
For i = 1 To 50
Combo1.AddItem Format$(i)
Next i
Combo1.ListIndex = 0 ' Меняем размер выпадающей части
комбобокса
ReSizeCombo Me, Combo1
End Sub
Public Sub ReSizeCombo(frm As Form, cbo As ComboBox) ' Процедура меняет
размер выпадающей части комбобокса
Dim cboLeft As Long
Dim cboTop As Long
Dim cboWidth As Long
Dim cboHeight As Long
Dim oldScaleMode As Long ' Меняем Scale Mode формы на пиксели.
oldScaleMode = frm.ScaleMode
frm.ScaleMode = vbPixels ' Сохраняем размеры комбобокса
cboLeft = cbo.Left
cboTop = cbo.Top
cboWidth = cbo.Width ' Задаем новую высоту комбобокса, в
соотвествии с рабочей областью формы
cboHeight = frm.ScaleHeight - cbo.Top - 5
frm.ScaleMode = oldScaleMode 'и собственно ресайзаем
MoveWindow cbo.hwnd, cboLeft, cboTop, cboWidth, cboHeight, 1
End Sub
Private Sub Form_Resize()
ReSizeCombo Me, Combo1
End Sub
|
|
|
|
|
|
|