TrackBarをつかいコントロールのスピードを変化させたいのですが
「算術演算の結果オーバーフローが発生しました」とでて困ってます。
基本的なところで考え違いをしているのかもしれません。よろしくお願い
します。
Private Sub TrackBar1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar1.Scroll
Dim newspeed = Timer1.Interval * TrackBar1.Value
Timer1.Interval = newspeed
ちなみに
maximam=100
minimun=10
value=10
Timer1.Interval =1
TrackBar.Scroll イベントは、一度のドラッグでそれなりの頻度発生します。で、それぞれに毎回 Interval * Value が実行されます。Minimum = 10 ですから、最低 10 倍です。平均 50 倍。Interval は Integer ですから、最高 21 億程度。初期値が 1 でも、大体 6 回とかそれぐらいでオーバーフローする計算になります。例えば 10、20、30、のとき発生するとすると、newspeed は 10、200、6000、となっていきます。
普通 newSpeed は、現在の Interval から算出するんではなく、固定の定数と TrackBar.Value の積で出すものではないでしょうか。
ありがとうございます。おかげさまで期待通りの動作を実現させる
ことができました。