这是一个愚蠢的问题......我试图拖放一个图片框到面板上。我遵循了一些示例,但它不起作用。面板的DragDrop事件从不会引发。我搜索thi网站寻找解决方案,并在一年前发现了两个主题,但他们的解决方案无效。我创建了一个新的项目,只有这样的代码:未提高DragDrop事件
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
pictureBox1.MouseDown += new MouseEventHandler(pictureBox1_MouseDown);
panel1.DragDrop +=new DragEventHandler(panel1_DragDrop);
panel1.DragOver +=new DragEventHandler(panel1_DragOver);
}
private void panel1_DragOver(object sender, DragEventArgs e)
{
Console.WriteLine("DragOver");
}
private void panel1_DragDrop(object sender, DragEventArgs e)
{
Console.WriteLine("DragDrop");
}
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
Console.WriteLine("Mouse");
pictureBox1.DoDragDrop(pictureBox1.Text, DragDropEffects.All);
}
}
我还设置面板和形式真实的的AllowDrop。 DragOver和MouseDown被引发。另外,当我拖动图片框时,光标变成禁止画圈,就像是一个不允许的操作。有没有办法让光标变成图片框中的图像?我不希望图片框移动,只是为了添加一个项目到面板。
经过几次试验后,我解决了关于拖拉事件不会升高的问题。其余的工作很好。我只需将其添加到dragdrop事件即可工作。 private void canvasPanel_DragEnter(object sender,DragEventArgs e) e.Effect = DragDropEffects.Move ;; } – Amaranth 2010-11-06 23:58:03
你是对的!我只是试了一下,看看你的意思。很好地完成了:-) – 2010-11-07 04:32:50