Как разграничить события нажатия и "перетаскивания" (нажатие и удержание)? - VB

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

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

Здравствуйте ! Возьмем к примеру, CommandButton. Хочу уметь перетаскивать форму, удерживая курсор мыши на кнопке. Следовательно обычный клик (_Click (Mouse_Down + Mouse_Up) также должен нормально отрабатывать. Сейчас конфликтный код имеет такой вид:

Решение задачи: «Как разграничить события нажатия и "перетаскивания" (нажатие и удержание)?»

textual
Листинг программы
Option Explicit
 
Dim dX As Single, dy As Single, flag As Boolean
 
Private Sub cmdCommand1_Click()
    Debug.Print "Click"
End Sub
 
Private Sub cmdCommand1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Debug.Print "Mouse down"
    flag = True: dX = X: dy = Y
End Sub
 
Private Sub cmdCommand1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If flag Then Me.Move Me.Left + (X - dX), Me.Top + (Y - dy)
End Sub
 
Private Sub cmdCommand1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    flag = False
    Debug.Print "Mouse up"
End Sub

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


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

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

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