|
Перехват CTRL+S
|
|||
---|---|---|---|
#18+
всем доброе время суток. поправьте пожалуйста что делаю нет так. вроде все просто, пишу Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
пробегаю отладчиком, получается, что как только CTRL нажимаешь, то событие уже срабатывает и "хватает" только CTRL (ну или то что раньше нажмешь), соответственно, дальше по условию не срабатывает то, что нужно. Если повесить на KeyUp, то корректно работает, но как-то "непревычно", что надо отпустить кнопку, вместо того, чтобы нажать. Непойму в чем туплю, вроде все просто, несколько часов уже мудрю и что-то никак. Глянул примеры с VB, VBA - вроде все верно. Подскажите в чем "затуп"? Заранее спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2018, 16:24 |
|
Перехват CTRL+S
|
|||
---|---|---|---|
#18+
zimkon, спасибо за ссылку. здесь немножко не о том событии, расписано keypress. с единичным нажатием (с нажатием одной клавиши) все понятно как сделать, проблем не возникает. Книга такая имеется в домашней библиотеке :-) А вот с CTRL+"Другая клавиша" пока не получается. Причину описал. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2018, 17:37 |
|
Перехват CTRL+S
|
|||
---|---|---|---|
#18+
zimkon, на форуме тема раскрыта http://www.sql.ru/forum/491467/keydown, будут экспериментировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2018, 17:39 |
|
Перехват CTRL+S
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
С этим примером то же самое, только перехват CTRL верный, S не перехватывает, если ставить на событие KeyDown . Единственное, что здесь надо заменить это константу vbCtrlMask на acCtrlMask, а в общем суть та же. И тоже не работает ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2018, 17:51 |
|
Перехват CTRL+S
|
|||
---|---|---|---|
#18+
Ганов Александр, Далось вам это CTRL + S... Вот тут http://www.sql.ru/forum/852338/perehvat-nazhatiya-ctrl-s-kod-dlya-perehvata в конце поймал... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2018, 18:08 |
|
Перехват CTRL+S
|
|||
---|---|---|---|
#18+
Ганов Александр Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
С этим примером то же самое, только перехват CTRL верный, S не перехватывает, если ставить на событие KeyDown . Единственное, что здесь надо заменить это константу vbCtrlMask на acCtrlMask, а в общем суть та же. И тоже не работает Решил всё-же проверить. Код Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
в поле формы в access 2003 прекрасно всё перехватывает :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2018, 20:05 |
|
Перехват CTRL+S
|
|||
---|---|---|---|
#18+
Ганов Александр, Если же вы используете событие Form_KeyDown, то как минимум надо ещё выставить свойство "Перехват нажатия клавиш - Да" в форме ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2018, 20:17 |
|
Перехват CTRL+S
|
|||
---|---|---|---|
#18+
zimkon, есть такое дело. это (свойство перехвата) у меня устанавливается при открытии любой формы автоматически в процедуре открытия. access 2016. почему из обратился к форуму. потому как сам уже перепробовал все варианты :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 04:19 |
|
Перехват CTRL+S
|
|||
---|---|---|---|
#18+
Ганов Александр, Не вкурю в чем проблема-это будет работать: Код: vbnet 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 11:58 |
|
Перехват CTRL+S
|
|||
---|---|---|---|
#18+
sdku, при нажатии клавиш CTRL+s почему-то в качестве KeyCode передается символ 17, при том, что vbKeyS это 84/ 17-й это CTRL, то есть как только нажимается CTRL, то сразу передается в процедуру где при сравнении данное дело не проходит. не пойму почему передается 17-й код, а не 84-й ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 12:27 |
|
Перехват CTRL+S
|
|||
---|---|---|---|
#18+
* поправка 83-й код ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 12:37 |
|
Перехват CTRL+S
|
|||
---|---|---|---|
#18+
Ганов Александр,стесняюсь спросить: а где в коде,который предложил Вам я,фигурирует acCtrMask Если вопрос ко мне,то давайте про мой код (Всё правильно при нажати Ctr происходит KeyDown а в этот момент KeyCode=17 (код клавиши Ctr) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 14:37 |
|
Перехват CTRL+S
|
|||
---|---|---|---|
#18+
вдогонку:в связи с вышесказанным:при нажатии CTR будет-ли условие в блоке If истинным? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 14:58 |
|
Перехват CTRL+S
|
|||
---|---|---|---|
#18+
sdku, Ваш код тоже пробовал до текущего когда (я с него начал тему), результат тот же. acCtrMask - это как раз 2. почему и не могу понять в чем проблема ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 15:04 |
|
Перехват CTRL+S
|
|||
---|---|---|---|
#18+
извиняюсь,последнее сообщение не читать ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 15:05 |
|
Перехват CTRL+S
|
|||
---|---|---|---|
#18+
если это у Вас не работает, то причина не в коде ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 16:20 |
|
Перехват CTRL+S
|
|||
---|---|---|---|
#18+
смените,на всякий случай, имя переменной "txt" в Вашем коде ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 16:36 |
|
Перехват CTRL+S
|
|||
---|---|---|---|
#18+
а вот так будет работать: ("Семён Семёныч"-бриллиантовая рука) Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 17:01 |
|
Перехват CTRL+S
|
|||
---|---|---|---|
#18+
при нажатии CTRL KeyCode =17 и ничего не происходит-процедура выполнена,но ctrl удерживается и нажимается другая клавиша-процедура выполняется по новой,но KeyCode уже другой-понятно ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 17:11 |
|
Перехват CTRL+S
|
|||
---|---|---|---|
#18+
sdku, то есть получается следующая картинка: при нажатии CTRL процедура полностью исполняется с нажатым CTRL, после чего при нажатии S происходит повторное исполнение процедуры, но уже в качестве KeyKode передается значение нажатой клавиши ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 08:57 |
|
Перехват CTRL+S
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
вставил DEBUG если по отдельности нажимать CTRL, то код 17, если отдельно S, то код 83 а если вместе жмешь хоть "убейся" дает 17+2 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 09:10 |
|
Перехват CTRL+S
|
|||
---|---|---|---|
#18+
KeyKod:17 Shift:2 KeyKod:17 Shift:2 KeyKod:17 Shift:2 KeyKod:17 Shift:2 KeyKod:17 Shift:2 KeyKod:17 Shift:2 KeyKod:17 Shift:2 KeyKod:17 Shift:2 KeyKod:17 Shift:2 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 09:11 |
|
Перехват CTRL+S
|
|||
---|---|---|---|
#18+
нашел причину: если форма разделенная, то в ней не работает, а если "простая форма", то работает без проблем ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 09:24 |
|
Перехват CTRL+S
|
|||
---|---|---|---|
#18+
Ганов Александрнашел причину: если форма разделенная, то в ней не работает, а если "простая форма", то работает без проблемдо А-2007 разделенной формы не существовало.Позже,в угоду неизвестно кому,появились разделенные формы-"недоформы" В ленточной(легко приводящейся к виду табличной) и табличной подчиненных формах все работает без проблем. Это только первые "грабли" на которые Вы наступили-будут еще,поверьте,если будете использовать такие формы(кстати-зачем? Ведь в табличной части выводятся все записи,а не те которые соответствуют "верхней" части формы(в отличи от ленточной или табличной подчиненных). Многозначные поля и разделенные формы-это что-то общее;больше проблем,чем пользы.Как не пользовался ни тем ни другим так и не буду-лучше слыть "старовером" чем натыкаться на "непонятки" ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 11:19 |
|
|
start [/forum/topic.php?fid=45&fpage=41&tid=1611039]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
146ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
others: | 285ms |
total: | 540ms |
0 / 0 |