Событие Dragdrop не поднято
-
29-09-2019 - |
Вопрос
Это своего рода глупый вопрос ... Я пытаюсь перетащить и бросить рисунок на панель. Я следовал некоторым моментам, но это не работает. Событие Dragdrop панели никогда не поднимается. Я искал THI сайт для решения и два тема более года, но их решения не работали. Я создал новый проект, только с этим кодом:
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);
}
}
Я также устанавливаю The DuteDrop панели и форму в True. Драдовер и Музедаун подняты. Кроме того, когда я перетащите Piciencebox, курсор становится запрещенным обведенным, как будто это была операция, которая не была допущена. Есть ли способ, которым курсор становится изображением в изображении? Я не хочу, чтобы PictureBox двигаться, только добавить элемент на панель.
Решение
Richard, проблема в том, что перетащите и падение не так простая операция, как вы закодировали здесь. Здесь вы еще не начали перетаскивание, которое должно начать с кода, и вы можете прочитать больше об этом здесь ... http://msdn.microsoft.com/en-us/library/system.windows.forms.control.dodragdrop(v=vs.90).aspx.
Если вы просто хотите переместить рисунок ... Перетаскивая рисунок внутри WinForm во время выполнения
И наконец Перетащите между экземплярами одинаковых форм формы Windows
Надеюсь это поможет.
Другие советы
Проблема легко решить.
Вы должны просто установить в соответствующий эффект драгенератора:
private void Form1_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.All;
}
После этого событие DRAGDROP уволено правильно.