|
■No15646 (Jitta on the way さん) に返信 > ■No15644 (まさお さん) に返信 >>■No15540 (やじゅ さん) に返信 >>>>■No15532 (まさお さん) に返信 > >>> > >>>【備考】:Visual Basic PowerPack v2.0をネット上よりインストールすると、"LineShape"オブジェクトにて線は引けたのですが、 > >>> そこで行き詰ってしまいました。。 >> > >>線は引けたわけですよね、描画位置が指定通りいかないとか? > >>行き詰まるには何か理由があるはずです、何がうまくいかなかったのでしょうか? >> >>機能として、横スクロールボタンが存在します。横スクロールボタンが押された場合に、再描画処理が走るのですが、その時に >>"LineShape"オブジェクトの線が消えてしまいます。(一瞬表示されるが。。) >>但し、線を描画しているフォームを一度最小化し、再び最大化すると線が表示されます。 >> (↑↑線を描画しているフォーム以外のウィンドウ(エクスプローラウィンドウ等)を一度、タブ切換などで再前面にもってき、 >> 再びフォーム表示の場合でも同様の現象が発生します。) >> >>横スクロールボタンを押した場合の処理→初回表示(1ページ目)と同じ処理が走ります。横軸(時間)がずれるだけで、他には何も変わりません。 >> >> >> >> > > 消えるのは、PictureBox だけ再描画しているから。 > 再び現れるのは、全てのコントロールを再描画しているから。
常にRefreshを行い、線が消えないように対応しました。
★★ もう1点質問があります。 ★★ @Private Sub picMain_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles picMain.MouseDown If e.Button <> MouseButtons.Left Then Exit Sub m_drag = True(ドラック中フラグ) End Sub
APrivate Sub picMain_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles picMain.MouseMove If m_drag = True Then LineShape1.X1 = e.X LineShape1.X2 = LineShape1.X1 Me.Refresh() End If End Sub
BPrivate Sub picMain_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles picMain.MouseUp If e.Button <> MouseButtons.Left Then Exit Sub Me.Refresh() m_drag = False End Sub
上記の3イベントにより、縦線を左右にドラッグ移動できるようにしたいのですが、動きがスムーズにいきません。 【スムーズにいかない状態の詳細】 →マウスにて掴んでる状態の時(ドラッグ中)に線が見えないなくなります。 マウスを放した状態で(ドラッグ終了)で線が描画されます。 マウスにて掴んでる状態でも左右の線移動が見えるようにすることは可能でしょうか??
|