|
0 / 0 / 0
Регистрация: 19.03.2015
Сообщений: 11
|
|
Событие AfterUpdate в модуле классов24.03.2015, 09:22. Показов 5415. Ответов 12
Метки нет (Все метки)
Господа, столкнулся с проблемой. Как выловить событие AfterUpdate для TextBox в модуле классов?
Так же интересует событие Enter.
0
|
|
| 24.03.2015, 09:22 | |
|
Ответы с готовыми решениями:
12
Проверка после AfterUpdate
Подписка на событие с обработчиком в общем модуле |
|
496 / 130 / 19
Регистрация: 30.03.2010
Сообщений: 224
|
|
| 24.03.2015, 12:50 | |
|
у MSForms.TextBox нет таких событий
они есть у MSForms.Control, который в принципе тоже может быть текстбоксом как вариант вижу завести вспомогательный объект типа MSForms.Control, связать его через Set с объектом типа MSForms.TextBox и ловить события вспомогательного объекта, который по сути тот же самый текстбокс
0
|
|
|
0 / 0 / 0
Регистрация: 19.03.2015
Сообщений: 11
|
||
| 25.03.2015, 12:24 [ТС] | ||
|
Добавлено через 11 часов 29 минут Подкиньте код, люди!!!!
0
|
||
|
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
|
|
| 25.03.2015, 13:01 | |
|
(не работает)
0
|
|
|
496 / 130 / 19
Регистрация: 30.03.2010
Сообщений: 224
|
|
| 25.03.2015, 17:44 | |
|
Public WithEvents obj As MSForms.Control - описание промежуточного объекта
Set obj = oTxtBx - после создания текстбокса связать их не факт, что так в лоб будет работать, поэкспериментируйте сами над объектами на голом месте, без проекта, что-то советовать трудно, а лепить свой для проверки - довольно трудоемко
0
|
|
|
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
|
||
| 25.03.2015, 18:10 | ||
|
Я проделал это - не работает, переменной типа MSForms.Control с WithEvents не хочет присваиваться ссылка на текстбокс . Без WithEvents - пожалуйста.
0
|
||
|
0 / 0 / 0
Регистрация: 19.03.2015
Сообщений: 11
|
|
| 26.03.2015, 13:19 [ТС] | |
|
Не пашет...
Добавлено через 6 часов 23 минуты Может есть какие-нибудь костыли, коллеги? На форме 496 TextBox'ов Ну о-о-очень не хочется для них всех по процедуре*2 впаять. Читал в одной книге, что в Классе события объекта Control не применимы к объекту TextBox и иже с ним. Однако в стандартном модуле TextBox как раз и унаследовал эти события от Control'а. Ну не верю я что в Классе допустили такой ляп. Интуитивно осознаю, что возможность применить эти события есть. Хотя бы через костыли. Откликнитесь, народ!!! Может кто чего слышал!? Или сообразит. Проект затормозил.
0
|
|
|
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
|
|
| 26.03.2015, 14:27 | |
|
Я встречал на одном англоязычном форуме упоминание о том, что можно перехватывать все события формы (включая события контролов). Но как это сделать - там написано не было. Представляю, что это будет погружение в дебри WinApi.
Неужели Вы не можете обойтись без событий AfterUpdate, Enter? Обычно достаточно тех, что есть. Подумайте над логикой работы.
0
|
|
|
2786 / 718 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
|
|||
| 26.03.2015, 14:29 | |||
|
А вам принципиальна разница событий AfterUpdate и Change?
Если точно не подойдёт, то у вас есть старый добрый костыль - сабклассинг окон средствами WinAPI.
0
|
|||
|
0 / 0 / 0
Регистрация: 19.03.2015
Сообщений: 11
|
||||||
| 26.03.2015, 15:17 [ТС] | ||||||
|
Вот нашёл в англо-американском кластере:
Добавлено через 3 минуты Может всё-таки через Property Set пробовать. WinAPI в топку. Необходимость использования именно этих событий в проекте оправдана. Например при фокусе определённого TextBox'а должен подсвечиваться определённый Label. При чём тут Change? События ведь не произошло. Добавлено через 3 минуты AfterUpdate, после ввода значения в TextBox, оно - значение должно приобрести определённый формат. При чём тут Change, событие уже другое. Добавлено через 29 минут Тут вообще всё красиво расписано, но не работает... http://www.ozgrid.com/forum/sh... p?t=154659
0
|
||||||
|
496 / 130 / 19
Регистрация: 30.03.2010
Сообщений: 224
|
||
| 26.03.2015, 15:24 | ||
|
и кстати в этом случае Set таки работает - как раз это мне удалось проверить
0
|
||
|
0 / 0 / 0
Регистрация: 19.03.2015
Сообщений: 11
|
|
| 28.03.2015, 05:22 [ТС] | |
|
Файл в студию, плз.
Добавлено через 11 часов 51 минуту С событием Enter в своём случае разобрался. Как и предполагалось через костыли. Влепил код для Enter в обработчик MouseMuve (как вариант - MouseDown). В обработчики KeyUp, KeyDown, KeyPress влепил ссылки на MouseMuve с параметрами "1, 0, 0, 0", хотя, думаю подойдут любые параметры. Для моих целей подошло. Код выполняется с небольшой (мс) задержкой... Пойдёт. Может кому пригодиться. Теперь остался грёбаный AfterUpdate. Работаем... Добавлено через 3 часа 48 минут Разобрался и с AfterUpdate. Принцип тот же. Разместил код в обработчике KeyDown и указал условия выполнения. При нажатии клавиш Enter, TAB, стрелки выполняется часть кода. Осталась одна проблема. Что если пользователь не нажимает клавиши а выбирает TextBox'ы мышью. Добавлено через 27 минут Есть одна мысль. Как запомнить в некой переменной последний изменяемый TextBox? Что-то типа PreviousControl в Access. Добавлено через 21 час 48 минут Запихал в Public имя TextBox'а из TextBox_KeyUp модуля класса и применил этот Public в процедуре MouseDown, а из TextBox_KeyDown модуля классов с условиями vbKeyDown = 9, 13, 37, 38, 39, 40 отправил в MouseDown с параметрами 1, 0, 0, 0. Вот вам 100% замена события AfterUpdate в модуле классов для Text_ и Combo_ Box'ов. Пользуйтесь. Всем спасибо за участие. Будут какие-то мысли, пишите, я на связи.
0
|
|
|
0 / 0 / 0
Регистрация: 14.11.2017
Сообщений: 1
|
|
| 14.11.2017, 13:21 | |
|
К сожалению не 100%. Не сработает если пользователь мышью уйдет с формы (к примеру нажмет сохранение файла), то в последнем изменяемом TextBox'е update не выполнится.
0
|
|
| 14.11.2017, 13:21 | |
|
Помогаю со студенческими работами здесь
13
Описание двух классов в одном модуле
Подписка кнопки на событие из библиотеки классов Внешнее событие из библиотеки классов в 1C-форму Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|