|
分類:[C#]
開発環境:VC#2010
お世話になります。
PicctureBoxに表示されている画像をドラッグ&ドロップで別のPictureBoxに移動するプログラムを作成しております。 (フォームロード時にPictureBox1に画像を表示、PictureBox1の画像をドラッグしPictureBox2にドロップで PictureBox1からPictureBox2へ画像が移動。)
下記のコードでPicutureBox間を移動するという目的は達成できました。 しかし、現在画像が表示されているPictureBox内にイメージをドロップ(シングルクリック)すると 画像が消えるという意図しない動作をしており、この原因がわからず苦慮しております。
なぜ画像が消えるのかご存じの方、ご教授願います。 また、より良い実現方法などありましたらお教えいただけると助かります。
//pictureBox1 private void pictureBox1_MouseDown(object sender, MouseEventArgs e) { Image img = this.pictureBox1.Image; pictureBox1.Image = null;
if (img == null) { return; } if (DoDragDrop(img, DragDropEffects.Move) == DragDropEffects.Move) { pictureBox1.Image = null; } }
void pictureBox1_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.Bitmap)) { e.Effect = DragDropEffects.Move; } }
void pictureBox1_DragDrop(object sender, DragEventArgs e) { Image img = (Image)e.Data.GetData(DataFormats.Bitmap); pictureBox1.Image = img; }
//pictureBox2 private void pictureBox2_MouseDown(object sender, MouseEventArgs e) { Image img = this.pictureBox2.Image; pictureBox2.Image = null; if (img == null) { return; } if (DoDragDrop(img, DragDropEffects.Move) == DragDropEffects.Move) { pictureBox2.Image = null; } }
void pictureBox2_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.Bitmap)) { e.Effect = DragDropEffects.Move; } }
void pictureBox2_DragDrop(object sender, DragEventArgs e) { Image img = (Image)e.Data.GetData(DataFormats.Bitmap); pictureBox2.Image = img; }
|