2012-08-26 47 views
-1

我有一个带有6个标签的表单,其中4个有png图像。我有它的设置,以便用户可以将4个图像中的一个拖入label5,label6会给他们一条消息,告诉他们他们选择哪个4 我有拖放部分工作,但无法弄清楚我需要什么代码告诉他们哪些是被挑选的。拖放图像

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using System.IO; 

namespace Drag_Drop_Tester2 
{ 
public partial class Form1 : Form 
{ 
    Image img1 = Image.FromFile("Peg_Red.png"); 
    Image img2 = Image.FromFile("Peg_Blue.png"); 
    Image img3 = Image.FromFile("Peg_Green.png"); 
    Image img4 = Image.FromFile("Peg_Orange.png"); 

    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void DD_MouseDown(object sender, MouseEventArgs e) 
    { 
     Label lblPic = (Label)sender; 
     lblPic.DoDragDrop(lblPic.Image, DragDropEffects.Copy); 
    } 

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

    private void DD_DragDrop(object sender, DragEventArgs e) 
    { 
     Label lblPic = (Label)sender; 
     Graphics g = lblPic.CreateGraphics(); 
     g.DrawImage((Image)e.Data.GetData(typeof(Bitmap)), new Point(0, 0)); 

     if ("code that goes here") 
      lblMsg.Text = "You picked red"; 
     else 
      lblMsg.Text = "I can't decide what you picked"; 
    } 
} 
} 
+0

你不能指望别人解决你的问题,没有一些上下文(甚至代码)来解决你的问题。 –

+0

编写代码,我们将尝试解决代码示例中的错误。 –

+0

这是Winforms还是Wpf –

回答

0

没关系我想通了:

If (sender == label1) 

lblMsg.Text = "You Picked Red"; 

我使其更难那么它需要的是

0

你贴什么工作,但你还可以添加标签的图像,那样你就不依赖标签的名字来确定丢弃的图像。看看这样的事情是否适合你。

public partial class Form1 : Form 
{ 
    Image img1 = Image.FromFile("Peg_Red.png"); 
    Image img2 = Image.FromFile("Peg_Blue.png"); 
    Image img3 = Image.FromFile("Peg_Green.png"); 
    Image img4 = Image.FromFile("Peg_Orange.png"); 

    public Form1() 
    { 
     InitializeComponent(); 
     img1.Tag = 1; 
     img2.Tag = 2; 
     img3.Tag = 3; 
     img4.Tag = 4; 
     label1.Image = img1; 
     label2.Image = img2; 
     label3.Image = img3; 
     label4.Image = img4; 

    } 

    private void DD_MouseDown(object sender, MouseEventArgs e) 
    { 
     Label lblPic = (Label)sender; 
     lblPic.DoDragDrop(lblPic.Image, DragDropEffects.Copy); 
    } 

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

    private void DD_DragDrop(object sender, DragEventArgs e) 
    { 
     Label lblPic = (Label)sender; 
     Graphics g = lblPic.CreateGraphics(); 
     var image = (Image)e.Data.GetData(typeof(Bitmap)); 
     var index = (int)image.Tag; 
     g.DrawImage(image, new Point(0, 0)); 

     switch (index) 
     { 
      case 1: 
       break; 
      case 2: 
       break; 
      case 3: 
       break; 
      case 4: 
       break; 
      default: 
       break; 
     } 
     g.Dispose(); 
     image.Dispose(); 

    } 

} 
+0

非常有趣的将不得不尝试 – Donatello