0

私は小さなプログラムに取り組んでおり、すべて正常に動作します。ただし、ハードコーディングする代わりに、フォームを aまたは aから、またはそれらの行に沿って何かにtimer変更したいと思います。timers intervallistboxnumericupdownboxcombobox

そのため、ハードコードされた 3000MS の代わりにform、小さなメニューから 1000 ~ 10000 ミリ秒で変更できるようにしたいと考えました。

timer問題は、オプションのボックスで指定された間隔を使用するように に指示する方法がわかりません。

出来ますか?

ありがとう。

4

3 に答える 3

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 に答える
1

タイマーintervalの を変更イベントで好きな値に設定できます。combobox

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

間隔を設定するための有効なデータを保証できない場合は、 double.TryParseを使用する必要があります。値が から取得され、comboboxその読み取り専用である場合、 は必要ありませんTryParse

于 2013-01-29T05:05:50.777 に答える
0

あなたが試すことができます:

myTimer.Interval  = (int) myTextbox.Text;

テキストボックスの値を変更するたびに発生させたい場合は、これを textchanged イベントに入れることができます。

于 2013-01-29T05:08:01.863 に答える