C# 如何让System.Windows.Forms.Timer在启动时立即运行勾号处理程序?

C# 如何让System.Windows.Forms.Timer在启动时立即运行勾号处理程序?,c#,timer,C#,Timer,下面是System.Windows.Forms.Timer C#代码: 计时器将每10秒doSth一次,但如何让它在启动时立即doSth 我试图创建一个扩展timer的自定义计时器,但无法覆盖Start方法 现在,我的代码是: myTimer.Start(); doSth(this, null); 我觉得不好。如何改进它?它很完美。什么都不要更改。我不确定您的确切要求,但为什么不将代码放在另一个方法中的计时器回调中呢 e、 g 这样,您就可以在应用程序启动时调用DoTimerStuff() 计

下面是
System.Windows.Forms.Timer
C#代码:

计时器将每10秒
doSth
一次,但如何让它在启动时立即
doSth

我试图创建一个扩展
timer
的自定义计时器,但无法覆盖
Start
方法

现在,我的代码是:

myTimer.Start();
doSth(this, null);

我觉得不好。如何改进它?

它很完美。什么都不要更改。

我不确定您的确切要求,但为什么不将代码放在另一个方法中的计时器回调中呢

e、 g


这样,您就可以在应用程序启动时调用DoTimerStuff()

计时器必须具有窗体级别的作用域,但不清楚您是否具有该作用域。出于好奇,我想出了一个小例子,它对我很有用:

    private void Form1_Load(object sender, EventArgs e)
    {
        txtLookup.Text = "test";
        DoSomething();
        timer1.Start();
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        DoSomething();
    }

    private void DoSomething()
    {
        txtLookup.Text += "ticking";
    }
每隔10秒,它会在文本框中的文本上追加另一个“滴答声”

你说

计时器将每10秒计时一次,但如何让它在启动时立即计时


我说,在调用计时器的启动方法之前立即调用doSth,我认为这很好。另请参见.Freewind,您可以更改这个myTimer.Tick+=neweventhandler(doSth);看看下面的答案和例子,我已经发布了***没有必要在间隔时间结束时传递任何发送者的get呼叫。
private void tmrOneSec_Tick(object sender, System.EventArgs e)
{
    DoTimerStuff();
}

private void DoTimerStuff()
{
    //put the code that was in your timer callback here
}
    private void Form1_Load(object sender, EventArgs e)
    {
        txtLookup.Text = "test";
        DoSomething();
        timer1.Start();
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        DoSomething();
    }

    private void DoSomething()
    {
        txtLookup.Text += "ticking";
    }