|
не получается поимать коардинаты мышки
|
|||
---|---|---|---|
#18+
застрял как поимать коардинаты мышки на входе в кнопку...ловить получается но не получается поимать самую первую коардинату на входе и тогда получится расчитать с какой стороны был вход..я так думаю...или есть болие умный вариант?:) вход допускается только с правой стороны. при входе в любую другую сторону кнопка меняет цвет и запрещенные вызовы EventHandlers то есть кнопка не становится дисейбл или скрытой (Visible), потому что тогда мы больше не будут получать события от кнопки, и это нас не устраивает. Чтобы пометить пользователю что разрешается вводить только с правой стороны мы красим толстые линии 8 пикселей на всех других сторонах зеленой кнопки. (прикрепил картинку) использую mousehover и mousemove для возврата в нормальное состаяние mouseleave ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2016, 20:39 |
|
не получается поимать коардинаты мышки
|
|||
---|---|---|---|
#18+
IgorShal, 1. В случае тача , ваша логика не работает. 2. Движением называется изменение состояния физической системы с течением времени. Следствие: необходимо не определение идиотической первой точки , а определение вектора движения. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2016, 09:57 |
|
не получается поимать коардинаты мышки
|
|||
---|---|---|---|
#18+
Логика может не сработать и в случае мыши, ибо при резком движении мыши курсор перемещается скачками (Штирлиц бежал скачками....) Так что придется отслеживать ВСЕ перемещения мыши, и в момент mouseenter строить этот вектор от предыдущей точки. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2016, 12:32 |
|
не получается поимать коардинаты мышки
|
|||
---|---|---|---|
#18+
Shocker.Proи в момент mouseenter строить этот вектор от предыдущей точки. Меня данная задачка заинтересовала и я провел несколько экспериментов. Нет такого момента, если двигать мышью достаточно быстро. Не - и все. Так же не возникают события mousemove и mouseleave ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2016, 14:17 |
|
не получается поимать коардинаты мышки
|
|||
---|---|---|---|
#18+
Cat2, Что ты имеешь ввиду? Что курсор просто "перепрыгивает" через кнопку на большой скорости? Или что ты можешь поймать на кнопке mouseover без предшествующего mouseenter? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2016, 15:43 |
|
не получается поимать коардинаты мышки
|
|||
---|---|---|---|
#18+
Cat2, у меня пока что не получается поймать ету точку class GateButton : Button { protected override void OnPaint(PaintEventArgs pevent) { base.OnPaint(pevent); Graphics g = pevent.Graphics; Pen green_pen = new Pen(Color.Green, 8); g.DrawLine(green_pen, 0, 3, Width, 3); g.DrawLine(green_pen, 0, Height - 3, Width, Height - 3); g.DrawLine(green_pen, 3, 0, 3, Height); } protected override void OnMouseMove(MouseEventArgs e) { if ((e.Location.X == (this.Size.Width )))// && (e.Location.Y >= this.Size.Height-10)) { this.BackColor = Color.Green; } base.Text = base.Location.X + ":" + base.Location.Y; base.OnMouseMove(e); } protected override void OnMouseLeave(EventArgs e) { base.BackColor = SystemColors.Control; base.OnMouseLeave(e); } ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2016, 16:43 |
|
не получается поимать коардинаты мышки
|
|||
---|---|---|---|
#18+
Shocker.ProCat2, Что ты имеешь ввиду? Что курсор просто "перепрыгивает" через кнопку на большой скорости? Или что ты можешь поймать на кнопке mouseover без предшествующего mouseenter? Что "перепрыгивает" ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2016, 16:51 |
|
не получается поимать коардинаты мышки
|
|||
---|---|---|---|
#18+
IgorShal, Я поначалу решил, что проще сделать "ворота" через которые над обязательно пройти. Прилепил к правому краю кнопки панельку. Если заходя на кнопку проходишь через панель - все хорошо. Оказалось, что ни одно событие движения мыши не срабатывает над панелью, если ее ширина мала. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2016, 17:18 |
|
не получается поимать коардинаты мышки
|
|||
---|---|---|---|
#18+
Cat2Оказалось, что ни одно событие движения мыши не срабатывает над панелью, если ее ширина мала.и я о том - про перепрыгивание. Когда курсор двигаешь быстро - его координаты меняются скачками, а не плавно, поэтому курсор и перепрыгивает через твои ворота. Поэтому принципиально знать предыдущую точку, до входа курсора в кнопку IgorShal, Как мне оформить свое сообщение? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2016, 22:50 |
|
|
start [/forum/topic.php?fid=20&tid=1400133]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
69ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 273ms |
total: | 446ms |
0 / 0 |