Как отслеживать попадания label в panel

158
25 октября 2021, 08:00

Объясните, как можно отслеживать label, когда он попадает в panel с drag and drop.
Файлы как перемещать нашел, а как это делать с внутренними объектами - пока не понятно...

Answer 1

Родной поддержки Drag & Drop у Label нет, придется начинать драг руками:

void label1_MouseDown(object sender, MouseEventArgs e)
{
    // позволит дропнуть текст метки в любую цель
    DoDragDrop(label1.Text, DragDropEffects.Copy);
}

У панели нужно выставить AllowDrop = true и обработать события DragEnter / DragDrop

Полный пример выглядит примерно так (обработчики нужно через свойства привязать):

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        label1.MouseDown += new MouseEventHandler(label1_MouseDown);
        panel1.AllowDrop = true; // можно выставить через свойства
        panel1.DragEnter += new DragEventHandler(panel1_DragEnter);
        panel1.DragDrop += new DragEventHandler(panel1_DragDrop);
    }
    void label1_MouseDown(object sender, MouseEventArgs e)
    {
        DoDragDrop(label1.Text, DragDropEffects.Copy);
    }
    void panel1_DragEnter(object sender, DragEventArgs e)
    {
        if (e.Data.GetDataPresent(DataFormats.Text))
        {
            e.Effect = DragDropEffects.Copy;
        }
    }
    void panel1_DragDrop(object sender, DragEventArgs e)
    {
        MessageBox.Show((string)e.Data.GetData(DataFormats.Text));
    }
}
READ ALSO
Ошибка при отправке сообщения

Ошибка при отправке сообщения

Пытаюсь реализовать чат при помощи Signalr, для примера нашел исходник проекта, установил все необходимые npm модули, все запускается и работает

171
RestSharp. Отправка POST запроса с телом form-data, состоящим из нескольких файлов и текстовых полей

RestSharp. Отправка POST запроса с телом form-data, состоящим из нескольких файлов и текстовых полей

Подскажите, пожалуйста, как я могу отправить POST запрос с телом form-data, состоящим из нескольких файлов и текстовых полей используя RestSharp?

186
Обход XML документа

Обход XML документа

Подскажите пожалуйста каким образом в XML документе найти узел и его дочерние элементы и при этом вернуть объект класса соответствующий этим...

173
Связь между таблицами, привязка к DataGridView

Связь между таблицами, привязка к DataGridView

Есть метод для связи между таблицами и биндинг к гриду

162