0

我正在开发一个小程序,一切正常。timer不过,我不想使用硬编码,而是将timers intervalfrom 形式从 alistbox或 anumericupdownbox或类似的combobox东西更改。

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

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

是否可以?

谢谢。

4

3 回答 3

1

您可以在您的更改事件中将计时器interval的 设置为您喜欢的值。combobox

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

如果您不能确保设置间隔的有效数据,您应该使用double.TryParse 。如果该值是从 a 中获取的combobox并且它是只读的,那么就不需要TryParse.

于 2013-01-29T05:05:50.777 回答
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;
}
于 2013-01-29T05:21:20.410 回答
0

你可以试试:

myTimer.Interval  = (int) myTextbox.Text;

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

于 2013-01-29T05:08:01.863 回答