Это является продолжением на вопрос одного ответил здесь: How to detect a mouse_down on a Userform Frame while the mouse is still downкак обнаружить Frame_Enter события из модуля класса
Использование кода из ответа на этот вопрос, я могу успешно обнаружить MouseDown, MouseUp и MouseMove на любой кадр на форме. Однако, по-видимому, в cls нет событий Frame_Enter или Frame_Exit. Есть ли способ имитировать событие Frame_Enter в модуле класса?
Редактировать: Вот что я пытаюсь сделать. У меня 8 кадров, загруженных 8 картинами, которые при объединении в более крупном кадре составляют более крупное изображение. Подумайте о головоломке с 8 прямоугольными фигурами. Как правило, все 8 кадров имеют «тусклую» (нейтральную фильтрацию) версию своего изображения, но когда мышь входит в любую из них, она запускает загрузку «неизмененной» версии изображения во вновь введенном кадре и затемняется версию изображения в только что выходящем кадре. Поэтому, если мышь находится над любым из этих кадров, она всегда перемещается по яркой картинке, которая окружена затемненными изображениями.
Поскольку мышь перемещается по неподвижному кадру, она переворачивает неограниченное количество триггеров «горячих точек», которые вызывают появление текстового поля с дополнительной информацией о том, что мышь в настоящее время витает. Когда он покидает этот кадр и перемещается по другому, процесс повторяется.
Все работает, за исключением обнаружения, когда мышь перемещается по границе кадра и в следующий кадр. Это должно быть обнаружено до того, как любые события MouseMove могут быть обработаны.
Вот метод, который выглядит многообещающим, если ничего другого не предложил: http://www.mrexcel.com/forum/showpost.php?p=2567141&postcount=28
Edit2: Он по-прежнему выглядит многообещающим, но я не могу заставить его работать. Кажется, что он не запускает события ввода и выхода до тех пор, пока я не нажму на элемент управления, что бесполезно для меня.
Итак, крис, вернись к себе. Вы смотрите события Frame_MouseMove и ожидаете, что другой кадр выведет событие, чем в прошлый раз. Мне интересно, если вместо того, чтобы использовать дополнительный текстовый блок, чтобы сигнализировать об изменении, не могли бы вы использовать статическую переменную для отслеживания currentFrame/prevFrame?
Вот что мой код делает. :) Поэтому вместо использования 'Frame1_MouseMove' и' UserForm_MouseMove', вы можете использовать только фреймы '_MouseMove' для хранения значений в переменных? –