ドラッグアンドドロップで

タグの編集
投稿者 kent  (社会人) 投稿日時 2009/9/17 21:36:32
PictureBox1の画像を PictureBox2にドラッグアンドドロップして画像を移動
させたいのですが、できません。



Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    PictureBox1.AllowDrop = True
    PictureBox2.AllowDrop = True


End Sub
 
Private Sub PictureBox1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles pictureBox1.DragEnter,PictureBox2.DragEnter



    If e.Data.GetDataPresent(DataFormats.FileDrop) Then
        e.Effect = DragDropEffects.Copy
    End If

End Sub
 
Private Sub PictureBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles PictureBox2.DragDrop,PictureBox1.DragDrop

    Dim FileName As String

    FileName = e.Data.GetData(DataFormats.FileDrop)(0)

    PictureBox1.Image = Image.FromFile(FileName)

End Sub
 
投稿者 よねKEN  (社会人) 投稿日時 2009/9/17 22:30:02
>PictureBox1の画像を PictureBox2にドラッグアンドドロップして画像を移動
>させたいのですが、できません。

それで?説明は手を抜かずにしましょうよ。

たぶん↓のページのことをしたいのだと思いますが。
ピクチャボックスに表示されている画像をドラッグ&ドロップする
http://dobon.net/vb/dotnet/graphics/pictureboxdragdrop.html
投稿者 よねKEN  (社会人) 投稿日時 2009/9/17 23:13:39
> たぶん↓のページのことをしたいのだと思いますが。

PictureBox1の画像をPictureBox2に、PictureBox2の画像をPictureBox1に、
といった移動(もしくは入替?)を実現したいのかなと思ったのですが、
私の提示したページ
> http://dobon.net/vb/dotnet/graphics/pictureboxdragdrop.html
の内容はずばりというわけではないですね。
このページとそのリンク先をしっかり読み込んで理解すれば実現はできますけど。

PictureBox1とPictureBox2の画像をD&Dで入れ替えるコードを書いてみました。
参考になれば。
--
Private Sub PictureBox_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown, PictureBox2.MouseDown
    Me.DoDragDrop(sender, DragDropEffects.All)
End Sub

Private Sub PictureBox_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles PictureBox2.DragDrop,PictureBox1.DragDrop
    If e.Data.GetDataPresent(GetType(PictureBox)) Then
        Dim source As PictureBox = DirectCast(e.Data.GetData(GetType(PictureBox)), PictureBox)
        DirectCast(sender, PictureBox).Image = source.Image
        source.Image = Nothing
    End If
End Sub

Private Sub PictureBox_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles pictureBox1.DragEnter,PictureBox2.DragEnter
        e.Effect = DragDropEffects.Move
End Sub
投稿者 (削除されました)  () 投稿日時 2009/9/18 02:29:01
(削除されました)
投稿者 kent  (社会人) 投稿日時 2009/9/18 04:29:22
>それで?説明は手を抜かずにしましょうよ。
すみません。
下記のページを参考に(というかほとんど)してデバッグしたのですが、全く動作しません

http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard22.htm

>PictureBox1とPictureBox2の画像をD&Dで入れ替えるコードを書いてみました。
>参考になれば。
有り難うございます。
しかし、ドラッグしようとすると移動禁止マークがでて,
どうしたわけか動きません。
なぜなのでしょうか?

投稿者 (削除されました)  () 投稿日時 2009/9/18 17:39:15
(削除されました)
投稿者 (削除されました)  () 投稿日時 2009/9/18 18:04:19
(削除されました)
投稿者 kent  (社会人) 投稿日時 2009/9/18 18:56:07
よねkenさん有り難うございます。
もう少し考えてみます。