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