Страница: 1 |
Страница: 1 |
Вопрос: Событие клик правой кнопкой на строке datagrid
Добавлено: 14.01.07 13:24
Автор вопроса: art
Кто нить сталкивался с этим?
В одном прект datagrid вообще не реагирует на нажатие правой кнопке, а делаю другой с datagrid'ом - для проверки, раегирует.
Ответы
Всего ответов: 10
Номер ответа: 1
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #1
Добавлено: 14.01.07 19:43
мож хук стоит?
Номер ответа: 2
Автор ответа:
art
Вопросов: 45
Ответов: 119
Профиль | | #2
Добавлено: 14.01.07 21:38
я, конечно, дико извиняюсь, а как проверить?
Номер ответа: 3
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 14.01.07 23:00
ну в том что не реагиирует, может ты что-то специфическое используешь? Например установку хука чтобы грид на скролл мыши реагировал... или ещё какие-то хуки SetWindowHooke...
Номер ответа: 4
Автор ответа:
art
Вопросов: 45
Ответов: 119
Профиль | | #4
Добавлено: 14.01.07 23:23
нет, такого ничего ни использую. На первой колоне поставил кнопку только.
В общем вот код, кот. отвечает за dg1:
Private Sub dg1_HeadClick(ByVal ColIndex As Integer)
Select Case ColIndex
Case 0
If Not flag Then
 env1.rsorg.Sort = "name asc"
'MsgBox ColIndex
flag = True
Else
 env1.rsorg.Sort = "name desc"
flag = False
End If
Case 1
If Not flag Then
 env1.rsorg.Sort = "phone1 asc"
flag = True
Else
 env1.rsorg.Sort = "phone1 desc"
flag = False
End If
Case 2
If Not flag Then
 env1.rsorg.Sort = "phone2 asc"
flag = True
Else
 env1.rsorg.Sort = "phone2 desc"
flag = False
End If
Case 3
If Not flag Then
 env1.rsorg.Sort = "address asc"
flag = True
Else
 env1.rsorg.Sort = "address desc"
flag = False
End If
End Select
End Sub
Это обработка клика на заглавие столбцов для сортировки.
Dim sel_row As Integer
Dim file_length, nfreefile As Integer
Dim sel_name, file_name, file_path, str As String
If Button = vbRightButton Then
Me.PopupMenu mnuRightClick
End If
'MsgBox dg1.RowContaining(Y) & ":" & dg1.ColContaining(X)
sel_row = dg1.RowContaining(Y)
If sel_row <> -1 Then
'MsgBox sel_row
'sel_col = dg1.ColContaining(X)
dg1.Row = sel_row
sel_name = dg1.Columns(0).Text
'MsgBox sel_name
file_name = Denv1.rsorg.Fields(9)
'MsgBox num
nfreefile = FreeFile
file_path = App.Path & "\txtFiles\" & file_name
Open file_path For Input As nfreefile
file_length = FileLen(file_path)
str = Input(file_length, #nfreefile)
Memo1.Text = str
Close
End If
End Sub
А это собственно клик на самом dg1.
Номер ответа: 5
Автор ответа:
art
Вопросов: 45
Ответов: 119
Профиль | | #5
Добавлено: 14.01.07 23:39
Datagrid вообще не хочет понимать, что по нему кликают правой кнопкой или левой.
Номер ответа: 6
Автор ответа:
art
Вопросов: 45
Ответов: 119
Профиль | | #6
Добавлено: 14.01.07 23:42
При нажатии любой кнопки мыши button всегда имеет значение 0.
Это глюк? Кто нить работал с этим?
Номер ответа: 7
Автор ответа:
art
Вопросов: 45
Ответов: 119
Профиль | | #7
Добавлено: 15.01.07 12:17
Вопрос открыт. Почему datagrid не понимает какой кнопкой на него кликнули?
Номер ответа: 8
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #8
Добавлено: 15.01.07 23:28
тю, ну как почему, ну не возвращает событие HeadClick какой кнопкой кликнули. Почему? Ну Билл Г. казёл и всё такоё...
Впрочем, кто мешает в HeadClick вызвать GetKeyState ?
Номер ответа: 9
Автор ответа:
art
Вопросов: 45
Ответов: 119
Профиль | | #9
Добавлено: 16.01.07 05:31
А кто сказал, что HeadClick не работатет?
Номер ответа: 10
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #10
Добавлено: 17.01.07 00:18
блин, не HeadClick, а просто Click, ну или какое там у него событие когда просто по ячейке клацаешь... вот в нём и проверить GetKeyState