連投ですみません。
TrackBar.Scroll イベントを他のイベント(ボタンなど)と
同時に発生させることは可能ですか?
一つ前の質問ではスルーしてしまいましたが、Scroll イベントは
> マウス操作またはキー操作でスクロール ボックスが移動すると発生します。
というものです。
望ましいタイミングのイベントは、ValueChanged イベントの方ではないでしょうか。
> スクロール ボックスの移動またはコードによる操作によって、トラック バーの Value プロパティが変更されると発生します。
TrackBar1_Scroll に書いた処理を他のイベントでも使いたいのなら、その処理を別メソッドに切り出し、それぞれからそのメソッドを呼び出すようにするのが良いでしょう。
メソッドをつくることでうまく動きました。
しかし、今度はマウスでバーを操作しても反応しなくなりました。
それでTrackBar1_ ValueChanged イベントも設定すると
思った動きを実現できました。
しかし、同じコードをメソッドとイベントに書くのは不自然な感じがするのですがいかがなものでしょう?
スクロール速度をバーで調節するイベント
Private Sub TrackBar1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar1.ValueChanged
Dim newspeed As Integer = 1 * TrackBar1.Value
Dim newspeed2 As Integer = 1 * TrackBar1.Value
Timer1.Interval = newspeed
Timer2.Interval = newspeed2
End Sub
スクロール速度を調節するメソッド
Private Sub speed()
Dim newspeed As Integer = 1 * TrackBar1.Value
Dim newspeed2 As Integer = 1 * TrackBar1.Value
Timer1.Interval = newspeed
Timer2.Interval = newspeed2
End Sub
> しかし、同じコードをメソッドとイベントに書くのは不自然な感じがするのですがいかがなものでしょう?
なんのためのspeedメソッドでしょうか。
単純に,イベントハンドラとなるメソッドの中で委譲先のメソッドを呼べばよいのです。
Private Sub TrackBar1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar1.ValueChanged
speed()
End Sub
>なんのためのspeedメソッドでしょうか
実は実行させたときにモノは動いているのです。その時点では
バーは最大値にあるのにかかわらず速度は最低速度なのです。
それでバーを一度最小値にもっていき、それから最大値にもってくれば最大速度がでるといったありさまなのです。
なにかよい方策があったらよろしくお願い致します。
YuOさんへ
大変失礼しました。
おしえていただいた方法でよかったのですね。
Hongliang も有り難うございました。
敬称を忘れてしまい失礼しました。
Hongliangさん も有り難うございました。
ツイート | ![]() |