테두리가없고 제목 표시 줄이없는 간단한 양식이 있습니다. 스톱워치를 보여주는 단 하나의 레이블 만 있습니다. 양식을 마우스로 클릭하여 움직일 수있는 양식이 필요합니다.양식을 이동하고 라벨을 클릭하십시오. vb.net
해결되었지만 문제는 라벨로 점재 된 양식을 클릭 할 때 양식이 움직이지 않는다는 것입니다. 다른 말로 표현하자면, Label은 다른 기능을 사용하지 않고 표시되어야합니다. 라벨을 어떻게 클릭하면됩니까?
테두리가없고 제목 표시 줄이없는 간단한 양식이 있습니다. 스톱워치를 보여주는 단 하나의 레이블 만 있습니다. 양식을 마우스로 클릭하여 움직일 수있는 양식이 필요합니다.양식을 이동하고 라벨을 클릭하십시오. vb.net
해결되었지만 문제는 라벨로 점재 된 양식을 클릭 할 때 양식이 움직이지 않는다는 것입니다. 다른 말로 표현하자면, Label은 다른 기능을 사용하지 않고 표시되어야합니다. 라벨을 어떻게 클릭하면됩니까?
이이 사이트에서 이에 대한 already an answer이지만, 그했다 C#에서, 그래서 나는 그 대답을 반복하지만 VB.NET에서 번역. 당신은이
여기서 중요한 점은 형태
Public Class Form1
<DllImportAttribute("user32.dll")> _
Public Shared Function SendMessage(hWnd As IntPtr, Msg As Integer, wParam As Integer, lParam As Integer) As Integer
End Function
<DllImportAttribute("user32.dll")> Public Shared Function ReleaseCapture() As Boolean
End Function
Private Sub Form1_MouseDown(sender As Object, e As MouseEventArgs) Handles MyBase.MouseDown, Label1.MouseDown
Const WM_NCLBUTTONDOWN As Integer = &HA1
Const HT_CAPTION As Integer = &H2
If e.Button = MouseButtons.Left Then
ReleaseCapture()
SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0)
End If
End Sub
End Class
의 Label1을위한 또한 mousedown의 취급하고 있지 .... 또한에 대답 upvote에를 esitate하지 않는 유용하다는 것을 생각한다면
안녕하세요 만드는 몇 가지 예제 소스이 양식을 이동 나는이 당신에게
을 도울 수 있기를 바랍니다
Public Class Form1
Dim drag As Boolean
Dim mousex As Integer
Dim mousey As Integer Private Sub
Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown drag = True
mousex = Windows.Forms.Cursor.Position.X - Me.Left
mousey = Windows.Forms.Cursor.Position.Y - Me.Top
End Sub Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
If drag Then
Me.Top = Windows.Forms.Cursor.Position.Y - mousey
Me.Left = Windows.Forms.Cursor.Position.X - mousex
End If
End Sub
Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles
Me.MouseUp`enter code here`
건배 :)
답장을 보내 주셔서 감사합니다. 그러나 답변이 아닙니다. 폼을 움직이고 움직이게하기 위해 이미 코드를 사용했습니다. 문제는 아닙니다. 문제는 라벨을 클릭하면 움직이지 않는다는 것입니다. – msosa
Public Class Form1
Dim drag As Boolean
Dim mousex As Integer
Dim mousey As Integer
Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown, Label1.MouseDown
drag = True
mousex = Windows.Forms.Cursor.Position.X - Me.Left
mousey = Windows.Forms.Cursor.Position.Y - Me.Top
End Sub
Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseUp, Label1.MouseUp
drag = False
End Sub
Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove, Label1.MouseMove
If drag Then
Me.Top = Windows.Forms.Cursor.Position.Y - mousey
Me.Left = Windows.Forms.Cursor.Position.X - mousex
End If
End Sub
End Class
답장을 보내 주셔서 감사합니다. 한편 나는 비슷한 방식으로 문제를 해결했다. 방금 Suad의 코드에 Label1 용 핸들러를 추가했습니다. – msosa