2016-07-15 112 views
-1

如何让我的Winforms应用程序单击窗体上的按钮,基于在窗体上的文本框中定义的间隔?间隔计时器点击

我曾尝试:

private void Form1_Load(object sender, EventArgs e) 
{ 
    Timer tm; 
    tm = new Timer(); 
    tm.Interval = 1000; 
    tm.Tick += new EventHandler(button1_Click); 
} 

一旦计时器启动,他们单击是对话框,然后我想计时器再次重新启动。

我有以下几点:

if (result1 == DialogResult.Yes) 
    { 
     string pastebuffer = DateTime.Now.ToString(); 
     pastebuffer = "### Edited on " + pastebuffer + " by " + txtUsername.Text + "###"; 
     Clipboard.SetText(pastebuffer); 
    } 
    else if (result1 == DialogResult.No) 
    { 
     //do something else 
    } 
+0

对话框?? Form1听起来不像一个对话类的好名字。 –

回答

1

要停止计时,使用

tm.Stop(); 

然后你可以改变任何的间隔,或任何其他属性,例如

tm.Interval = int.Parse(textBox1.Text); // Will fail on non-int input... 

然后使用,

tm.Start(); 
1

从文字框添加间隔和启动计时器,都从一个按钮,点击:

private void button1_Click(object sender, EventArgs e) 
{ 
    timer1.Stop(); // if you need to stop, then stop it here 
    timer1.Interval = int.Parse(textBox1.Text); 
    timer1.Start(); 
} 
1

使用此代码。希望它会有所帮助。定义时间tm级别级别,以便您可以访问Form1_load函数之外。

Timer tm; 
    private void Form1_Load(object sender, EventArgs e) 
    { 
     tm = new Timer(); 
     tm.Interval = 1000; 
     tm.Tick += new EventHandler(button1_Click); 
    } 




    if (result1 == DialogResult.Yes) 
    { 

     'if you want to restart your timer than add here. 
     tm.stop() 
     tm.Interval = int.Parse(newinterval.text); 
     string pastebuffer = DateTime.Now.ToString(); 
     pastebuffer = "### Edited on " + pastebuffer + " by " + txtUsername.Text + "###"; 
     Clipboard.SetText(pastebuffer); 
     tm.start() 
    } 
    else if (result1 == DialogResult.No) 
    { 
     //do something else 
    }