Как изменить цвет текста вкладки Layout?

Это по дизайну. Событие MouseDown захватывает мышь, свойство Control.Capture. Встроенный обработчик событий MouseUp проверяет, все ли мышь захвачена, а мышь не зашла слишком далеко, а затем запускает событие Click. Проблема заключается в том, что вызов DoDragDrop () отменяет захват мыши. Обязательно, так как мышиные события теперь используются для реализации операции drag + drop. Таким образом, вы никогда не получите событие Click или DoubleClick.

Элементы управления, которые должны отвечать кликам и drag + drop, являются проблемой удобства использования. Однако это исправление, что вам нужно сделать, чтобы убедиться, что пользователь достаточно переместил мышь из исходного местоположения мыши, , затем запустил перетаскивание. Сделайте свой код таким:

Private MouseDownPos As Point

Private Sub Dir1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Dir1.MouseDown
    MouseDownPos = e.Location
End Sub

Private Sub Dir1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Dir1.MouseMove
    If e.Button And MouseButtons.Left = MouseButtons.Left Then
        Dim dx = e.X - MouseDownPos.X
        Dim dy = e.Y - MouseDownPos.Y
        If Math.Abs(dx) >= SystemInformation.DoubleClickSize.Width OrElse _
           Math.Abs(dy) >= SystemInformation.DoubleClickSize.Height Then
            '' Start the drag here
            ''...
        End If
    End If
End Sub
13
задан Fantômas 3 December 2017 в 09:40
поделиться