Pindahkan formulir, klik Label vb.net

saya memiliki formulir sederhana tanpa batas dan tanpa bilah judul. Hanya ada satu label yang menunjukkan stopwatch. Saya perlu formulir agar dapat dipindahkan dengan mengklik mouse di mana saja pada formulir lalu menyeretnya.

Saya menyelesaikannya, tetapi masalahnya adalah ketika saya mengklik formulir di tempat yang ditempati label, formulir tidak bergerak. Dengan kata lain, saya memerlukan Label hanya untuk dilihat, tidak memiliki fungsi lain. Bagaimana cara membuat label diklik?


person msosa    schedule 03.08.2013    source sumber


Jawaban (2)


Sudah ada jawaban untuk ini di situs ini, tapi itu tadi di C#, jadi saya ulangi jawaban itu di sini tetapi diterjemahkan dalam VB.NET. Jika menurut Anda ini berguna, jangan harap upvote jawaban itu juga....

Hal penting yang perlu diperhatikan disini adalah penanganan mousedown juga untuk Label1 dan tidak hanya untuk form saja

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
person Steve    schedule 03.08.2013
comment
Terima kasih atas balasannya. Sementara itu saya memecahkan masalah, dengan cara yang sama. Saya baru saja menambahkan penangan untuk Label1 pada kode Suad. - person msosa; 03.08.2013

Halo Saya punya beberapa contoh sumber untuk membuat formulir dapat dipindahkan

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`

Saya harap ini dapat membantu Anda

Bersulang :)

person Suad Halilovic    schedule 03.08.2013
comment
Terima kasih atas balasannya, tapi ini bukan jawabannya. Saya sudah menggunakan kode Anda untuk membuat formulir dapat dipindahkan dan memindahkan formulir itu sendiri bukanlah masalahnya. Masalahnya adalah itu tidak bergerak jika saya mengklik label. - person msosa; 03.08.2013