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

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

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

Всем здравствуйте. На форме label1 и button1. Оба объекта могут инициировать перетаскивание по форме (DragOnDrop). Нужно определить какой тип объекта мы перетаскиваем. Скорее всего для этого нужно использовать аргумент события с именем e (DragEventArgs e). Но как?
Листинг программы
  1. namespace Drop
  2. {
  3. public partial class Form1 : Form
  4. {
  5. public Form1()
  6. {
  7. InitializeComponent();
  8. this.AllowDrop = true;
  9. }
  10. private void button1_MouseDown(object sender, MouseEventArgs e)
  11. {
  12. button1.DoDragDrop(sender, DragDropEffects.All);
  13. }
  14. private void label1_MouseDown(object sender, MouseEventArgs e)
  15. {
  16. label1.DoDragDrop(sender, DragDropEffects.All);
  17. }
  18. private void Form1_DragEnter(object sender, DragEventArgs e)
  19. {
  20. e.Effect = DragDropEffects.All;
  21. }
  22. private void Form1_DragDrop(object sender, DragEventArgs e)
  23. {
  24. MessageBox.Show("Что мы таскали? Label или Button?");
  25. }
  26. }
  27. }

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

textual
Листинг программы
  1. private void Form1_DragDrop(object sender, DragEventArgs e)
  2.         {
  3.             if (e.Data.GetFormats()[0] == typeof(Label).ToString())
  4.             {
  5.                 MessageBox.Show(((Label)e.Data.GetData(e.Data.GetFormats()[0])).Name);
  6.             }
  7.             else if (e.Data.GetFormats()[0] == typeof(Button).ToString())
  8.             {
  9.                 MessageBox.Show(((Button)e.Data.GetData(e.Data.GetFormats()[0])).Name);
  10.             }
  11.         }

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


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

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

15   голосов , оценка 4.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы