我正在开发一个小程序,一切正常。timer
不过,我不想使用硬编码,而是将timers
interval
from 形式从 alistbox
或 anumericupdownbox
或类似的combobox
东西更改。
因此,我希望能够在form
1000-10000 毫秒的小菜单上更改它,而不是像它那样硬编码 3000MS。
问题是,我不确定如何告诉它timer
使用可选框中指定的间隔。
是否可以?
谢谢。
我正在开发一个小程序,一切正常。timer
不过,我不想使用硬编码,而是将timers
interval
from 形式从 alistbox
或 anumericupdownbox
或类似的combobox
东西更改。
因此,我希望能够在form
1000-10000 毫秒的小菜单上更改它,而不是像它那样硬编码 3000MS。
问题是,我不确定如何告诉它timer
使用可选框中指定的间隔。
是否可以?
谢谢。
您可以在您的更改事件中将计时器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
.
如果您要使用允许非数字输入的控件,例如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;
}
你可以试试:
myTimer.Interval = (int) myTextbox.Text;
如果您希望每次更改文本框值时都触发它,则可以将其放入 textchanged 事件中。