Я не думаю, что вы сможете добиться большего успеха, чем Timer
(хотя я могу быть удивлен).
Ранее я использовал Timer
s для той же цели, и они работают, обычно так:
-
Timer
Start()
с, используя Interval
из ~ 200
мс при нажатии кнопки. Мышь также Capture
d в этой точке.
- Каждый
Tick
производит прокрутку. (Первый Tick
также изменяет интервал на ~ 25
мс)
- Когда мышь поднимается,
Timer.Stop()
s.
Изменение Interval
с 200
на 25
означает, что им нужно некоторое время удерживать мышь нажатой, но после этого действие прокрутки происходит быстрее / плавнее.
Кнопка «удерживается» на самом деле не является событием, это скорее состояние (т.е. она не происходит в определенный момент времени).