TrackBarの使い方

解決


るいべ  2009-10-05 14:22:41  No: 146345  IP: 192.*.*.*

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

編集 削除
Hongliang  2009-10-05 15:03:32  No: 146346  IP: 192.*.*.*

TrackBar.Scroll イベントは、一度のドラッグでそれなりの頻度発生します。で、それぞれに毎回 Interval * Value が実行されます。Minimum = 10 ですから、最低 10 倍です。平均 50 倍。Interval は Integer ですから、最高 21 億程度。初期値が 1 でも、大体 6 回とかそれぐらいでオーバーフローする計算になります。例えば 10、20、30、のとき発生するとすると、newspeed は 10、200、6000、となっていきます。
普通 newSpeed は、現在の Interval から算出するんではなく、固定の定数と TrackBar.Value の積で出すものではないでしょうか。

編集 削除
るいべ  2009-10-05 15:22:20  No: 146347  IP: 192.*.*.*

ありがとうございます。おかげさまで期待通りの動作を実現させる
ことができました。

編集 削除