Long pressed button
button, c#, winforms
Solution
UPDATED: Shortest way:
Using `Anonymous Methods` and `Object Initializer`:
public void Repeater(Button btn, int interval)
{
var timer = new Timer {Interval = interval};
timer.Tick += (sender, e) => DoProgress();
btn.MouseDown += (sender, e) => timer.Start();
btn.MouseUp += (sender, e) => timer.Stop();
btn.Disposed += (sender, e) =>
{
timer.Stop();
timer.Dispose();
};
}
Problem
I want to repeat an action when a `Button` is pressed during a long time, like for example the forward button of an MP3 reader. Is there an existing c# event in WinForm ? I can handle the `MouseDown` event to start a timer which will perform the action and stop it on `MouseUp` event, but I am looking for an easier way to solve this problem => ie : a solution without a `Timer` (or Thread / Task ...).