C#のマウスイベントに応じてトラックバーを移動するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/4516350

質問

これはおそらくN00Bクエリです。マウスダウンイベントに基づいてトラックバーの値を変更したい場所が必要です。これは次のように達成しました:

private void MoveTrackBarToMouseClickLocation(TrackBar a_tBar, int a_mouseX)
{
    // Jump to the clicked location

        double dblValue;
        dblValue = ((double)a_mouseX / (double)a_tBar.Width) * (a_tBar.Maximum -    a_tBar.Minimum);
        a_tBar.Value = Convert.ToInt32(dblValue);
}

その部分は正常に機能します。マウスボタンが押されている間に、スクロールを動作させるのに苦労しています。たとえば、トラックバーをクリックして、マウスを下にして値50と言うと、マウスがダウンしている間に右または左(値= 50から)をスクロールできるようにしたいと思います。

私は自分の小さな問題を明確にしたことを願っています。どんな助けも感謝しています。ありがとう

役に立ちましたか?

解決

でコードを実行する必要があります MouseMove イベント, 、と同様に MouseDown イベント。

このイベントは、マウスを移動したときに発生します その間 ボタンの1つが押されています。対照的に、 MouseDown 現在処理するイベントは、マウスボタンが押されるたびに1回だけ上げられます。それが理由です TrackBar ユーザーがマウスを移動するときに動いていませんが、ボタンが最初に押されたときに適切に動作しています。

イベントハンドラーを配線したコードを表示したり、電話をかけたりしませんでした MoveTrackBarToMouseClickLocation 機能、それが私が得ることができる限り具体的です。しかし、あなたがなんとか配線した場合 MouseDown すでにイベント、これは簡単な修正であるはずです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top