如何从C#中的文本框定义计时器间隔

时间:2014-06-08 08:48:20

标签: c#

我正在学习C#,我正在编写一个简单的汽车大小写,而我正努力让它变得如此用户'可以设置自己的间隔。我尝试使用:

timer1.Interval = textbox1.Text;

但这似乎并没有奏效。我把那个代码放在一个按钮里......我怎么能让它工作?为什么它不起作用?

2 个答案:

答案 0 :(得分:5)

您可以使用以下内容:

int value;

// if it is really a value
if (int.TryParse(textbox1.Text, out value))
{
    // if the value is not negativ (or you can enter the lower boundary here)
    if (value > 0)
    {
        timer1.Interval = value;
    }
}

正如史蒂夫在评论中提到的,你需要将一个回调函数连接到timer1.Elapsed事件(注意:事件的名称因你使用的计时器而异。也可能是timer1.Tick) 。您可以使用以下代码执行此操作:

timer1.Elapsed += TimerElapsedCB;

你需要自己定义回调函数:

private void TimerElapsedCB(object sender, ElapsedEventArgs e)
{
    // Do something here ;-)
    // (e.g. access the signal time by using e.SignalTime)
}

答案 1 :(得分:3)

试试这个:

Timer timer1 = new Timer();
timer1.Interval = int.Parse(textbox1.Text);

但请记住,用户必须输入一个数字,因此您可能需要在用户输入错误数据时处理该情况。

编辑: 您可以使用TryParse来确保它是一个数字:

int myInt = 0;
Timer timer1 = new Timer();
bool parsed = int.TryParse(textbox1.Text,out myInt);

if (parsed)
{
    timer1.Interval = myInt;
}