C# 如何根据用户选择设置计时器?
我正在做一个小程序,一切正常。但是,我不想使用硬编码的C# 如何根据用户选择设置计时器?,c#,C#,我正在做一个小程序,一切正常。但是,我不想使用硬编码的计时器,而是想将计时器间隔从列表框或数值下拉框,组合框或类似行的形式更改 因此,我希望能够在表单上用1000-10000毫秒的时间从一个小菜单中更改它,而不是像现在这样硬编码3000MS 问题是,我不知道如何告诉计时器使用可选框中指定的间隔 可能吗 谢谢。您可以在您的组合框中的更改事件中将a的间隔设置为您喜欢的值 private void ComboBox1_SelectedIndexChanged(object sender, System
计时器
,而是想将计时器
间隔
从列表框
或数值下拉框
,组合框
或类似行的形式更改
因此,我希望能够在表单上用1000-10000毫秒的时间从一个小菜单中更改它,而不是像现在这样硬编码3000MS
问题是,我不知道如何告诉计时器使用可选框中指定的间隔
可能吗
谢谢。您可以在您的组合框中的更改事件中将a的间隔设置为您喜欢的值
private void ComboBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
ComboBox comboBox = (ComboBox) sender;
aTimer.Interval = double.Parse(ComboBox1.SelectedValue);
}
如果无法确保设置间隔的数据有效,则应使用。如果该值是从组合框中获取的,并且是只读的,则不需要TryParse
,您可以尝试:
myTimer.Interval = (int) myTextbox.Text;
如果希望在每次更改文本框值时触发该事件,则可以将其放入textchanged事件中。如果要使用允许非数字输入(如文本框)的控件,请确保验证输入实际上是一个数字。首先捕获错误比以后处理异常要好
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;
}
如果值是从combo获取的,并且它只准备就绪,那么就不需要TryParse,我已经添加了您的建议。我建议使用一个线程作为计时器函数(sleep as interval),应该更容易管理。但是如上所述,如果最终用户输入字符串
,会发生什么?在本例中,您将得到一个InvalidCastException
。