Единственный способ — прицепить к форме невидимый лист-бокс.
Вот подпрограмма из одного моего приложения:
[code
Private Sub datGrid1_ButtonClick(ByVal ColIndex As Integer)
 im tmpSQL As String, j As Integer
tmpSQL = "SELECT DISTINCT "
Select Case ColIndex
Case 0
tmpSQL = tmpSQL & "AuthorName FROM tabl_Cytates ORDER BY AuthorName"
Case 1
tmpSQL = tmpSQL & "Theme FROM tabl_Cytates ORDER BY Theme"
Case 2
tmpSQL = tmpSQL & "SourceCyt FROM tabl_Cytates ORDER BY SourceCyt"
'Следующий случай предотвращает возможный сбой
Case -1
ColIndex = 0
tmpSQL = tmpSQL & "AuthorName FROM tabl_Cytates ORDER BY AuthorName"
End Select
'Вызываем функцию заполнения лист-бокса. Ее надо написать, она заполняет лист-бокс и возвращает количество записей в рекордсете
j = ListFulfilFP(lstGrid1, tmpSQL)
'Изменение размеров лист-бокса, перемещение и вывод на экран
With datGrid1
lstGrid1.Width = .Columns(ColIndex).Width
lstGrid1.Left = .Columns(ColIndex).Left + datGrid1.Left
'Меняем размеры лист-бокса по высоте в зависимости от количества записей
If (j < 10) Then lstGrid1.Height = .RowHeight * j Else lstGrid1.Height = .RowHeight * 10
lstGrid1.Top = .RowTop(.Row) + .RowHeight + .Top
If (lstGrid1.Top + lstGrid1.Height > uscAdo1.Top) Then _
lstGrid1.Top = lstGrid1.Top - .RowHeight - lstGrid1.Height
lstGrid1.Visible = True
lstGrid1.SetFocus
End With
End Sub
[/code]
Ответить
|