DataGrid, событие ButtonClick() - как правильно?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

DataGrid, событие ButtonClick() - как правильно?

Сообщение Ennor » 28.04.2005 (Чт) 11:03

Че-то я совсем затупил. Народ, напомните, как правильно прописывается событие ButtonClick() для MS DataGrid. Нужно создавать собсный комбо и подвешивать его на форму или нет?

А то свойство Button я для столбца прописал, все замечательно, но как только сделал обработчик означенного события (без единой строки кода), комбик перестал выпадать. Вот я и думаю... Нахрена я вообще с этим контролом связался?

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 28.04.2005 (Чт) 11:10

этот бутончик только кнопочку в ячейку добавляет, а все остальное ты сам должен реализовать

конечно контрол этот не ахти какой, если есть мани, то лучше взять что-нибудь поприличней

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 28.04.2005 (Чт) 11:17

Konst_One писал(а):этот бутончик только кнопочку в ячейку добавляет

Не скажи, пока в коде не было точки входа для события, при нажатии на кнопку вываливалось какое-то подобие editable combo. А после добавления обработчика перестала даже эта пустышка вываливаться. Вот мне и интересно, как это вообще прописывается.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 28.04.2005 (Чт) 11:20

покажи свой код, может че вместе расскопаем

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 28.04.2005 (Чт) 11:29

что-то у меня ничего не вываливается - просто кнопка висит в ячейке и все

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 28.04.2005 (Чт) 11:52

Черт! Теперь у меня тоже не получается. Но ведь вываливалось же!

Ладно. Вопрос остается в силе - что прописывать в событие ButtonClick(), чтоб вываливалось?

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 28.04.2005 (Чт) 11:55

странно, но я обычно по этому событию показывал свой контрол (ListView или что-то еще)

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 28.04.2005 (Чт) 12:07

На форме DataGrid1 и ListBox1:

Код: Выделить всё
Option Explicit
Dim rs As ADODB.Recordset

Private Sub DataGrid1_ButtonClick(ByVal ColIndex As Integer)
Dim i As Integer
Dim iLeft As Single
Dim iTop As Single
Dim iWidth As Single

    With Me.DataGrid1
        iLeft = .Columns(ColIndex).Left + .Left
        iWidth = .Columns(ColIndex).Width
        iTop = .Top + (.Row + 1) * .RowHeight + .HeadLines * .RowHeight + 30
    End With

    With Me.List1
        .Clear
        .BackColor = &H80000018
        For i = 1 To 10
            .AddItem "Item " & i
        Next i
        .Move iLeft, iTop, iWidth
        .ZOrder 0
        .Visible = True
    End With
   
End Sub

Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
    Me.List1.Visible = False
End Sub

Private Sub Form_Load()
Dim i As Integer

Set rs = New ADODB.Recordset

rs.Fields.Append "Field1", adVarChar, 100, adFldIsNullable
rs.Fields.Append "Field2", adInteger, , adFldIsNullable

rs.Open

For i = 1 To 10
    rs.AddNew
    rs!Field1 = "Row " & i
    rs!Field2 = i
Next i


Set Me.DataGrid1.DataSource = rs
Me.DataGrid1.Columns(1).Button = True



End Sub

Private Sub List1_Click()
    Me.DataGrid1.SetFocus
    Me.List1.Visible = False
End Sub

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 28.04.2005 (Чт) 12:08

Т.е. весь прикол свелся в отображению кнопки со стрелкой вниз, и все? Ничего встроенного в этом гриде нет? Вот подстава... Значит, придется кидать собсный комбо. Фак-каммала.

Ясно, спасибо.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 28.04.2005 (Чт) 12:10

не за что, спасибо надо мелкософту сказать за такой замечательный грид :)

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 28.04.2005 (Чт) 12:15

Дык, емнип, это же всего лишь кастрированная версия TrueDBGrid от ComponentOne. Или я путаю? В общем, какова цена, таков и вкус вина.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing-бот, Yandex-бот и гости: 5

    TopList