TrackBarの使い方

解決


るいべ  2009-10-05 23:22:41  No: 146345

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-06 00:03:32  No: 146346

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-06 00:22:20  No: 146347

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加