Вопрос

Это своего рода глупый вопрос ... Я пытаюсь перетащить и бросить рисунок на панель. Я следовал некоторым моментам, но это не работает. Событие 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 уволено правильно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top