Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
06.05.2015, 12:21
|
|||
---|---|---|---|
|
|||
Как обработать MouseEnter и MouseLeave правильно? |
|||
#18+
На моём компоненте лейбл и текстбокс. Задача: когда указатель мыши попадает на территорию компонента, у текстбокса должно измениться свойство (BorderStyle = FixedSingle). Когда уходит за пределы компонента, рамка должна исчезнуть. Если решать эту задачу так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
то MouseLeave срабатывает всякий раз, когда мышь заходит на территорию размещённого на моём компоненте лейбла и текст-бокса (а таких размещённых на нём компонентов может быть много). Как решить такую задачу? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.05.2015, 16:33
|
|||
---|---|---|---|
Как обработать MouseEnter и MouseLeave правильно? |
|||
#18+
Nika gnomeНа моём компоненте лейбл и текстбокс. Задача: когда указатель мыши попадает на территорию компонента, у текстбокса должно измениться свойство (BorderStyle = FixedSingle). Когда уходит за пределы компонента, рамка должна исчезнуть. Если решать эту задачу так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
то MouseLeave срабатывает всякий раз, когда мышь заходит на территорию размещённого на моём компоненте лейбла и текст-бокса (а таких размещённых на нём компонентов может быть много). Как решить такую задачу? Добавьте обработчик MouseEnter в эвенты этих компонентов тоже. Будет заходить в них - тоже будет менять рамку. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.05.2015, 17:18
|
|||
---|---|---|---|
|
|||
Как обработать MouseEnter и MouseLeave правильно? |
|||
#18+
Как вариант - можно. Но у этих компонент тоже могут быть свои дочерние компоненты - придётся перелопатить их все. Но это ладно.. Я не смогу определить, вышел ли курсор за пределы моего контрола, т.к. при каждом выходе из каждого дочернего элемента (и при каждом входе в него тоже, т.к. будет осуществлён выход с другого элемента) будет генерироваться MouseLeave. А мне бы знать, либо он в пределах, либо за пределами. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.05.2015, 19:09
|
|||
---|---|---|---|
Как обработать MouseEnter и MouseLeave правильно? |
|||
#18+
Nika gnome, проверять в обработчике события координаты мыши. Находится ли мышь внутри границ компонента. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.05.2015, 11:07
|
|||
---|---|---|---|
Как обработать MouseEnter и MouseLeave правильно? |
|||
#18+
Nika gnomeНо у этих компонент тоже могут быть свои дочерние компоненты - придётся перелопатить их все. Но это ладно.. Я не смогу определить, вышел ли курсор за пределы моего контрола, т.к. при каждом выходе из каждого дочернего элемента (и при каждом входе в него тоже, т.к. будет осуществлён выход с другого элемента) будет генерироваться MouseLeave. А мне бы знать, либо он в пределах, либо за пределами. Не подписывайте всех на MouseLeave, это только для главного. Остальных подпишите только на"Enter". Подписаться на эвент можно рекурсивно - у вас же не будет 500 компонентов там... пробежитесь в конструкторе да и все... На самом деле проблема еще интереснее - у компонентов бывает граница - которая не компонент, и при движении через нее ваша рамочка может мигать. Но это даже фишка. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=20&tablet=1&tid=1401574]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 358ms |
total: | 486ms |
0 / 0 |