Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 1 |

 

  Вопрос: MS DataGrid 6.0 control - помогите, кто умеет п... Добавлено: 10.04.04 19:57  

Автор вопроса:  Ганчиков

Нужно "повесить" процедуру на щелчок по клетке таблицы (field). Самое простое событие - DataGrid_Click(), проблемса в том, что оно не возвращает координат (строка, столбец) этой ячейки поля!!! Почитал MSDN - там пишут, что событие DataGrid_ColEdit в принципе реагирует на щелчок мышью по указанной ячейке, (для этого нужно выбрать любое значение MarqueeStyle кроме dbgFloatingEditor) и возвращает индекс столбца (ColIndex), которого хватает для однозначной идентификации ячейки (семейство Columns оно почему-то так названо...). Однако данное событие не реагирует на щелчок мышью по ячейке - только после непосредственного изменения данных в ячейке, а мне этого не нужно!!!).

В общем, помогите, может кто знает свойство, возвращающее индекс столбца активной ячейки...

И еще момент, нужно сделать так, чтобы при нажатии опред. клавиши (напр. F1), выводились разные справочники, в зависимости от номера ячейки... Если кто знает как - умоляю, ПОМОГИТЕ!!!!!

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 skl99



ICQ: 334909201 

Вопросов: 0
Ответов: 4
 Профиль | | #1 Добавлено: 13.04.04 11:14

Пользуйся контролом MSHFlexGrid, у него есть свойства Rows, Cols для установки количества столбцов и строк, есть свойства Row, Col, Text для задания и получения параметров ячейки.

Ответить

Номер ответа: 2
Автор ответа:
 ol2003



Вопросов: 3
Ответов: 122
 Профиль | | #2 Добавлено: 14.04.04 00:22

Кусок, который ловит событие в DataGriid:

Private Sub MyDataGrid_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) _
        Handles MyDataGrid.MouseDown
        Dim hti As System.Windows.Forms.DataGrid.HitTestInfo
        hti = MyDataGrid.HitTest(e.X, e.Y)
        If hti.Type = DataGrid.HitTestType.Cell Then
            With MyDataGrid
                .CurrentRowIndex = hti.Row
                 i = .CurrentRowIndex()
                j = .CurrentCell.ColumnNumber
  string = .Item(i, j)               
            End With

        Else
            MyDataGrid.CurrentRowIndex = 0

            MyDataGrid.CurrentCell.ColumnNumber=0
        End If
    End Sub

Дерзайте, сударь!

Ответить

Номер ответа: 3
Автор ответа:
 ol2003



Вопросов: 3
Ответов: 122
 Профиль | | #3 Добавлено: 14.04.04 00:27

Прости склеротика, пропустил строку:

.CurrentCell.ColumnNumber=hti.Column

Ответить

Номер ответа: 4
Автор ответа:
 Ганчиков



Вопросов: 8
Ответов: 5
 Профиль | | #4 Добавлено: 23.04.04 19:37

SKL99 - Окейно, проблемса в том, что я VB 6 юзаю, так что куски с .NET мне пока ни к чему!!!

Если знаешь как реализовать такую процедуру на VB 6 - напиши мне на ящик -

ganchikovm@rambler.ru. Буду очень признателен!!!

Ответить

Номер ответа: 5
Автор ответа:
 Ганчиков



Вопросов: 8
Ответов: 5
 Профиль | | #5 Добавлено: 25.04.04 11:43

т.е. пардон, - эта реплика была к ol2003!!!

Ответить

Номер ответа: 6
Автор ответа:
 ol2003



Вопросов: 3
Ответов: 122
 Профиль | | #6 Добавлено: 26.04.04 23:24
Увы, для 6 - не знаю. Могу только риоединиться  совету skl99, - на VB6 FlexGrid - самое мiлоe дело 

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам