我正在制作一个小程序,一切正常。我没有使用硬编码timer
,而是希望从timers
或interval
listbox
更改表单中的numericupdownbox
combobox
1}}或沿着那些方向的东西。
因此,我希望能够在1000-10000毫秒的小菜单中在form
上更改它,而不是硬编码的3000MS。
问题是,我不知道如何告诉timer
使用可选框中指定的间隔。
有可能吗?
感谢。
答案 0 :(得分:1)
您可以在interval
的更改事件中将timer的combobox
设置为您喜欢的值。
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事件中。