Как определиться объект какого типа мы перетаскивали мышью? - C#

Узнай цену своей работы

Формулировка задачи:

Всем здравствуйте. На форме label1 и button1. Оба объекта могут инициировать перетаскивание по форме (DragOnDrop). Нужно определить какой тип объекта мы перетаскиваем. Скорее всего для этого нужно использовать аргумент события с именем e (DragEventArgs e). Но как?
namespace Drop
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.AllowDrop = true;
        }
 
        private void button1_MouseDown(object sender, MouseEventArgs e)
        {
            button1.DoDragDrop(sender, DragDropEffects.All);
        }
 
        private void label1_MouseDown(object sender, MouseEventArgs e)
        {
            label1.DoDragDrop(sender, DragDropEffects.All);
        }
 
        private void Form1_DragEnter(object sender, DragEventArgs e)
        {
            e.Effect = DragDropEffects.All;
        }
 
        private void Form1_DragDrop(object sender, DragEventArgs e)
        {
            MessageBox.Show("Что мы таскали? Label или Button?"); 
        }
 
    }
}

Решение задачи: «Как определиться объект какого типа мы перетаскивали мышью?»

textual
Листинг программы
private void Form1_DragDrop(object sender, DragEventArgs e)
        {
            if (e.Data.GetFormats()[0] == typeof(Label).ToString())
            {
                MessageBox.Show(((Label)e.Data.GetData(e.Data.GetFormats()[0])).Name);
            }
            else if (e.Data.GetFormats()[0] == typeof(Button).ToString())
            {
                MessageBox.Show(((Button)e.Data.GetData(e.Data.GetFormats()[0])).Name);
            }
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.2 из 5
Похожие ответы