2016-05-18 18 views
-1

私は問題を抱えています。 1つのピクチャボックスにドラッグするピクチャボックスのグループがあります。ドラッグした後に特定のピクチャボックスを無効にする方法は?だから、それはもう引っ張ることができません。代わりにPictureBoxの画像をドラッグするC#のドラッグ&ドロップのPictureBoxは2

private void pictureBox1_MouseDown(object sender, MouseEventArgs e) 
    { 
    if (e.Button == MouseButtons.Left) 
     pictureBox1.DoDragDrop(pictureBox1.Image, DragDropEffects.All); 
    } 

    private void pictureBox2_DragEnter(object sender, DragEventArgs e) 
    { 
    if (e.Data.GetDataPresent(DataFormats.Bitmap)) 
     e.Effect = DragDropEffects.Copy; 
    else 
     e.Effect = DragDropEffects.None; 
    } 

    private void pictureBox2_DragDrop(object sender, DragEventArgs e) 
    { 
    if ((e.Data.GetDataPresent(DataFormats.Bitmap))) 
     this.pictureBox2.Image = (Bitmap)(e.Data.GetData(DataFormats.Bitmap)); 
    } 
+0

コードを追加してください –

+0

ドラッグの許可/禁止を設定するには、PBのタグでフラグを使用してください。 'pictureBox1_MouseDown'は/各' _DragDrop'イベントでそれを設定し、それをテストします! – TaW

+0

@TaW私の考えを正確に:-) –

答えて

1

PictureBoxをドラッグします。ドロップされたとき
は、trueへのTagプロパティを設定します。 MouseDownイベントで

、Tagプロパティがnullであり、それがある場合にのみドラッグするかどうかを確認します。

private void pictureBox1_MouseDown(object sender, MouseEventArgs e) 
{ 
    if (e.Button == MouseButtons.Left && pictureBox1.Tag == null) 
     pictureBox1.DoDragDrop(pictureBox1.Image, DragDropEffects.All); 
} 

private void pictureBox2_DragEnter(object sender, DragEventArgs e) 
{ 
    if (e.Data.GetDataPresent(typeof(PictureBox))) 
     e.Effect = DragDropEffects.Copy; 
    else 
     e.Effect = DragDropEffects.None; 
} 

private void pictureBox2_DragDrop(object sender, DragEventArgs e) 
{ 
    if (e.Data.GetDataPresent(typeof(PictureBox))) 
    { 
     var picturebox = ((PictureBox)e.Data.GetData(typeof(PictureBox))); 
     picturebox.Tag = true; 
     this.pictureBox2.Image = picturebox.Image; 
    } 
} 
関連する問題