如何根据用户选择设置定时器?

时间:2013-01-29 05:03:46

标签: c#

我正在制作一个小程序,一切正常。我没有使用硬编码timer,而是希望从timersinterval listbox更改表单中的numericupdownbox combobox 1}}或沿着那些方向的东西。

因此,我希望能够在1000-10000毫秒的小菜单中在form上更改它,而不是硬编码的3000MS。

问题是,我不知道如何告诉timer使用可选框中指定的间隔。

有可能吗?

感谢。

3 个答案:

答案 0 :(得分:1)

您可以在interval的更改事件中将timercombobox设置为您喜欢的值。

private void ComboBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
   ComboBox comboBox = (ComboBox) sender;
   aTimer.Interval = double.Parse(ComboBox1.SelectedValue);
}

如果无法确保设置间隔的有效数据,则应使用double.TryParse。如果该值来自combobox及其只读,那么就不需要TryParse

答案 1 :(得分:1)

如果您打算使用允许非数字输入的控件,例如TextBox,请确保您确认输入实际上是一个数字。最好首先捕获错误,而不是稍后处理异常。

private void SetIntervalButton_Click(object sender, EventArgs e)
{
    int interval = 0;
    bool success = Int32.TryParse(intervalTextBox.Text, out interval);

    if(success)
    {
        operationTimer.Interval = interval;
    }
}

如果您使用NumericUpDown控件,则可以省略上面的检查,因为它只允许数值。

private void SetIntervalButton_Click(object sender, EventArgs e)
{
    operationTimer.Interval = (int) numericUpDown1.Value;
}

答案 2 :(得分:0)

您可以尝试:

myTimer.Interval  = (int) myTextbox.Text;

如果您希望每次更改文本框值时都将其触发,则可以将此项置于textchanged事件中。