长按按钮

Emm*_*aix 5 c# button winforms

我希望Button在长时间按下a 时重复动作,例如MP3阅读器的前进按钮.WinForm中是否存在现有的c#事件?

我可以处理MouseDown事件来启动一个计时器,它将执行操作并在MouseUp事件上停止它,但我正在寻找一种更简单的方法来解决这个问题=>即:没有Timer(或线程/任务......)的解决方案.

Ria*_*Ria 7

更新:最短的方法:

使用Anonymous MethodsObject 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();
                        };
}
Run Code Online (Sandbox Code Playgroud)