powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как перехватить нажатие клавиши Delete в vsFlexGrid?
8 сообщений из 8, страница 1 из 1
Как перехватить нажатие клавиши Delete в vsFlexGrid?
    #32845073
Kroket
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как перехватить нажатие клавиши Delete в vsFlexGrid?
У этого грида есть события KeyPress и KeyCode, но там нажатия таких клавиш как Delete, Insert, F2 и т.п. не перехватываются.
...
Рейтинг: 0 / 0
Как перехватить нажатие клавиши Delete в vsFlexGrid?
    #32845420
Фотография _bob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
навесь хук на клавиатуру и удаляй нажатие del из очереди
------------------
Best regards, _bob
...
Рейтинг: 0 / 0
Как перехватить нажатие клавиши Delete в vsFlexGrid?
    #32845674
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KroketКак перехватить нажатие клавиши Delete в vsFlexGrid?
У этого грида есть события KeyPress и KeyCode, но там нажатия таких клавиш как Delete, Insert, F2 и т.п. не перехватываются.В vsFlexGrid нет события KeyPress - есть событие KeyPressEdit:
Fired when the user presses a key in cell-editing mode
Syntax
Private Sub VSFlexGrid_KeyPressEdit( ByVal Row As Long, ByVal Col As Long, KeyAscii As Integer)
KeyAscii - множество печатных символов - в этом твоя проблема.
Используй KeyDownEdit.
...
Рейтинг: 0 / 0
Как перехватить нажатие клавиши Delete в vsFlexGrid?
    #32845854
Дурак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВ vsFlexGrid нет события KeyPress

Неправда Ваша. Есть.

Код: plaintext
1.
2.
3.
Private Sub vsAppLog_KeyPress(KeyAscii As Integer)

End Sub

Но я обычно пользуюсь
Код: plaintext
1.
2.
Private Sub vsAppLog_KeyDown(KeyCode As Integer, Shift As Integer)
End Sub

и
Код: plaintext
1.
Private Sub vsAppLog_KeyDownEdit(ByVal Row As Long, ByVal Col As Long, KeyCode As Integer, ByVal Shift As Integer)
End Sub

Разница между ними в том, что KeyDown - реагирует на нажатие кнопки
в г р и д е, а KeyDownEdit - в р е д а к т и р у е м о й я ч е й к е.

P.S.
Всю жизнь на vsFlexGrid'e сижу :-).
...
Рейтинг: 0 / 0
Как перехватить нажатие клавиши Delete в vsFlexGrid?
    #32846246
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В vsFlexGrid нет события KeyPress Неправда Ваша. Есть.
Код: plaintext
1.
2.
Private Sub vsAppLog_KeyPress(KeyAscii As Integer)
End Sub
Всю жизнь на vsFlexGrid'e сижу :-).См. первоисточник (screen-shot from vsFlexGrid 7.0 Help) - приаттачен.Но я обычно пользуюсь
Код: plaintext
1.
Private Sub vsAppLog_KeyDown(KeyCode As Integer, Shift As Integer)
End Sub
"Терзают меня смутные сомненья", что Вас ввёл в заблуждение префикс в имени vs AppLog.
KeyDown - стандартное событие Visual Basic 'а, наследуемое гридом.KeyDownEdit - в р е д а к т и р у е м о й я ч е й к е.Мы с Вами говорим одно и то же, только я использовал не разрядку, а жирный шрифт:
in cell-editing mode
...
Рейтинг: 0 / 0
Как перехватить нажатие клавиши Delete в vsFlexGrid?
    #32846479
Дурак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВас ввёл в заблуждение префикс в имени vsAppLog
Не понял этой фразы, сорри. Я так их всегда называю (VideoSoft)...

автор
KeyDown - стандартное событие Visual Basic'а, наследуемое гридом

Наследуется. Значит, все-таки есть :-)?

авторМы с Вами говорим одно и то же, только я использовал не разрядку, а жирный шрифт:
in cell-editing mode
Согласен про cell-editing mode.
И все-таки PressEdit НЕ ЛОВИТ нажатие кнопки Delete.

Этот код работать не будет.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub VSFlexGrid1_KeyPressEdit(ByVal Row As Long, ByVal Col As Long, KeyAscii As Integer)

If KeyAscii = vbKeyDelete Then
    MsgBox ("Deleted")
Else
    MsgBox ("Что-то другое!")
End If
End Sub

P.S. Правда не уверен, что автору нужно Delete именно в cell-editing mode.
Поэтому и привел оба варианта.
Почему бы и не использовать стандартные события, если нет других...
...
Рейтинг: 0 / 0
Как перехватить нажатие клавиши Delete в vsFlexGrid?
    #32846735
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понял этой фразы, сорри. Я так их всегда называю (VideoSoft)...Я подумал, что этот фрагмент - заимствованный где-то. Прошу прощения...
Я тоже использую венгерскую нотацию...
KeyDown - стандартное событие Visual Basic'а, наследуемое гридом
Наследуется. Значит, все-таки есть :-)?О, да.
И все-таки PressEdit НЕ ЛОВИТ нажатие кнопки Delete.Возможно, я неправ, но стараюсь оставлять собеседнику возможность для осмысления сказанного.
Поэтому и привёл следующее:KeyAscii - множество печатных символов - в этом твоя проблема.
Используй KeyDownEditКак раз здесь и стОит подумать:
Delete, F2 - это ASCII-коды?
И, если нет, то какое событие ловит все KeyCodes?
И, если выбран обработчик KeyDown,
то KeyDownEdit (всё же vsFlex) или KeyDown?
Вы-то придерживаетесь (почти) такого же мнения:Почему бы и не использовать стандартные события, если нет других...
...
Рейтинг: 0 / 0
Как перехватить нажатие клавиши Delete в vsFlexGrid?
    #32846755
Дурак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВозможно, я неправ, но стараюсь оставлять собеседнику возможность для осмысления сказанного.

Все четко и корректно.
В следующий раз буду внимательнее.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как перехватить нажатие клавиши Delete в vsFlexGrid?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]