私はこのコードを持っています:
private void Form1_MouseWheel(object sender, MouseEventArgs e)
{
if (leave == true)
{
if (e.Delta > 0)
{
if (timer1.Interval < 5000)
{
timer1.Interval += 1000;
label2.Text = (timer1.Interval/1000).ToString();
}
}
else
{
if (timer1.Interval == 1000)
{
timer1.Interval -= 100;
label2.Text = (timer1.Interval / 1000).ToString();
}
}
}
}
デザイナーの元の timer1 間隔は 1000 ミリ秒に設定されています。マウス ホイール イベントでは、label2 に untis を秒単位で表示するようにしました。実際、マウスホイールを上に動かすと、タイマーが遅くなり、秒単位で表示されます 1 2 3 4 5
問題は、1 秒または 1000 ミリ秒になると、ホイールを押したままにしておくと、単位が 100 単位で表示され、timer1.interval が 100 単位で変更されることを望んでいた 2 番目の部分にあります。
したがって、label2 で 1 秒の場合は、100 まで 900 800 700 600 500 が表示されます。また、timer1 の間隔は、100 まで 800 700 600 900 ミリ秒に変更する必要があります。
100 になったら、100 を下回らないようにします。
問題はこの部分にあります:
if (timer1.Interval == 1000)
{
timer1.Interval -= 100;
label2.Text = (timer1.Interval / 1000).ToString();
}
まったく機能していません。
編集**
私のコードは今:
if (leave == true)
{
if (e.Delta > 0)
{
if (timer1.Interval < 5000)
{
timer1.Interval += 1000;
label2.Text = (timer1.Interval / 1000).ToString();
}
}
else
{
if (timer1.Interval > 1000) {
timer1.Interval -= 1000;
label2.Text = (timer1.Interval / 1000).ToString();
}
else
if (timer1.Interval <= 1000 && timer1.Interval > 100)
{
timer1.Interval -= 100;
label2.Text = (timer1.Interval / (double)1000).ToString();
}
}
}
しかし、今 5 秒 (5000 ミリ秒) だった場合は、ホイールを 5 4 3 2 1 0 に戻して 0 で停止します。
以前のように 1 ...0.9 0.8 0.7 の下には表示されません。