Перетаскивание формы за любой объект - Visual Basic .NET
Формулировка задачи:
Видел где-то такой пример:
Работает хорошо, но только на форме. Если схватиться, допустим, за Label , то ничего не происходит. Может кто подсказать, как можно сделать так, что бы и за другие объекты тоже тянуло?
Листинг программы
- Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown
- Me.Capture = False
- Me.WndProc(Message.Create(Me.Handle, &HA1, New IntPtr(2), IntPtr.Zero))
- End Sub
Решение задачи: «Перетаскивание формы за любой объект»
textual
Листинг программы
- Public Class Form1
- Private Const WM_NCLBUTTONDOWN As Integer = &HA1
- Private Const HTCAPTION As Integer = 2
- Private Declare Function ReleaseCapture Lib "user32" () As Long
- Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwdn As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
- Private Sub DragForm(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown
- If e.Button = MouseButtons.Left Then
- Me.Opacity = 0.35
- ReleaseCapture()
- SendMessage(Me.Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0)
- Me.Opacity = 1
- End If
- End Sub
- End Class
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д