Перетаскивание объекта и определение его положения относительно другого контролла - VB
Формулировка задачи:
дано условие, что при перетаскивании объекта label в текстовом поле отображается информация, где он теперь находится, те если мы тащим лабел ниже текстового пля, то он прописывает -"Объект под текстовым полем", если слева - "Объект слева от текстового поля" и т.д.
пока что получилось только прописать событие перетаскивания объекта, а как дальше? нужно использовать: control.DragMode=vbAutomatic
Листинг программы
- Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single) 'Если на форме происходит событие DragDrog то
- 'Перемещаем лабел
- Label1.Left = X
- Label1.Top = Y
- End Sub
Решение задачи: «Перетаскивание объекта и определение его положения относительно другого контролла»
textual
Листинг программы
- Dim cx As Single, cy As Single
- Private Sub label1_DragOver(Source As Control, X As Single, Y As Single, State As Integer)
- Label1.Left = Label1.Left + X - cx
- Label1.Top = Label1.Top + Y - cy
- Label1.Caption = ""
- If Sgn(Text1.Top + Text1.Height / 2 - (Label1.Top + Label1.Height / 2)) > 0 Then Label1.Caption = " Выше" Else Label1.Caption = " Ниже"
- If Sgn(Text1.Left + Text1.Width / 2 - (Label1.Left + Label1.Width / 2)) > 0 Then Label1.Caption = Label1.Caption & " Левее" Else Label1.Caption = Label1.Caption & " Правее"
- End Sub
- Private Sub label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
- Label1.Drag vbBeginDrag
- cx = X
- cy = Y
- End Sub
- Private Sub Form_Load()
- Label1.BorderStyle = 1
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д