[リストへもどる]
一括表示

投稿時間:2004/06/16(Wed) 11:05
投稿者名:おじん
URL :
タイトル:
コントロールをドラッグ&ドロップしたい
よろしくお願いいたします。下記のソース(PictureBox、Commandボタン)で、

1、移動(ドロップ)位置が微妙にずれる
  →正しくなるまで何度が試みる
2、移動(オーバー)中の動きがギシギシする
3、かつ、コントロールの影が見え、その位置がソースの位置とずれている
  →2,3は気にしない
4、ボタンの上(範囲内)ではドラッグできない
  →一度離れたところに移動し、所定の位置に戻す

矢印(→)のように「解決策」はありますが、どうもしっくりしません。
細かいことですが、解決方法を教えてください。

Option Explicit               'Win98 VB6.0
    Dim wx!, wy!
    
Private Sub Command1_DragDrop( _
        Index As Integer, _
        Source As Control, X As Single, Y As Single)
'    Source.Move X - wx, Y - wy    '<----4が解決できると思ったのですが、、残念!
End Sub

Private Sub Command1_MouseDown( _
        Index As Integer, _
        Button As Integer, Shift As Integer, X As Single, Y As Single)
    wx = X:    wy = Y
    Command1(Index).Drag 'vbBeginDrag
End Sub

Private Sub Picture1_DragDrop( _
        Source As Control, X As Single, Y As Single)
    Source.Move X - wx, Y - wy  '<---こんな方法はダメ? ずれる!!
End Sub

Private Sub Picture1_DragOver( _
        Source As Control, X As Single, Y As Single, State As Integer)
    Label1.Caption = State
    Source.Move X - wx, Y - wy   '<---移動中も表示したい!!
End Sub

投稿時間:2004/06/16(Wed) 11:22
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: コントロールをドラッグ&ドロップしたい
ここの[イベントプロシージャ関係]の[マウスのドラッグ&ドロップで操作]の中の
補正しておかないとドロップした位置がずれる のところを参考にドロップ位置の
補正をして見て下さい。

投稿時間:2004/06/16(Wed) 12:30
投稿者名:おじん
URL :
タイトル:
Re^2: 解決しました
> ここの[イベントプロシージャ関係]の[マウスのドラッグ&ドロップで操作]の中の
> 補正しておかないとドロップした位置がずれる のところを参考にドロップ位置の
> 補正をして見て下さい。
投稿する前に「探した」のですが見つける(見落とし)ことができませんでした。
お手間をおかけし、申し訳ありませんでした。

4、は次のように訂正し解決しました。
Private Sub Command1_DragDrop( _
        Index As Integer, _
        Source As Control, X As Single, Y As Single)
    Source.Move Command1(Index).Left + X - wx, Command1(Index).Left + Y - wy
End Sub

なお、例示したソースでは wx,wy で補正はしていたのですが、よくよく観察していると、
コントロール(Command ボタン)をDragしている間に、マウスの位置がコントロール上で
僅かながらずれ、それがDropしたときに影響していると思われます。
悲しいことに、ドラッグするにも「マウスを固定できない」ほど老いぼれてしまいました。
申し訳ありませんでした。