Перетаскивание объекта и определение его положения относительно другого контролла - VB

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

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

дано условие, что при перетаскивании объекта label в текстовом поле отображается информация, где он теперь находится, те если мы тащим лабел ниже текстового пля, то он прописывает -"Объект под текстовым полем", если слева - "Объект слева от текстового поля" и т.д. пока что получилось только прописать событие перетаскивания объекта, а как дальше? нужно использовать: control.DragMode=vbAutomatic
Листинг программы
  1. Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single) 'Если на форме происходит событие DragDrog то
  2. 'Перемещаем лабел
  3. Label1.Left = X
  4. Label1.Top = Y
  5. End Sub

Решение задачи: «Перетаскивание объекта и определение его положения относительно другого контролла»

textual
Листинг программы
  1. Dim cx As Single, cy As Single
  2.  
  3. Private Sub label1_DragOver(Source As Control, X As Single, Y As Single, State As Integer)
  4.     Label1.Left = Label1.Left + X - cx
  5.     Label1.Top = Label1.Top + Y - cy
  6.     Label1.Caption = ""
  7.    If Sgn(Text1.Top + Text1.Height / 2 - (Label1.Top + Label1.Height / 2)) > 0 Then Label1.Caption = " Выше" Else Label1.Caption = " Ниже"
  8.     If Sgn(Text1.Left + Text1.Width / 2 - (Label1.Left + Label1.Width / 2)) > 0 Then Label1.Caption = Label1.Caption & " Левее" Else Label1.Caption = Label1.Caption & " Правее"
  9. End Sub
  10.  
  11. Private Sub label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  12.     Label1.Drag vbBeginDrag
  13.     cx = X
  14.     cy = Y
  15. End Sub
  16.  
  17. Private Sub Form_Load()
  18.     Label1.BorderStyle = 1
  19. End  Sub

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


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

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

12   голосов , оценка 3.667 из 5

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

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

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