繁体   English   中英

如何使用vb.net在面板中移动图片框

[英]How to move picture boxes in a panel using vb.net

我正在尝试在面板中移动图片框。

这是我的代码:

Private dragging As Boolean
Private beginX, beginY As Integer

Private Sub Control_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
        dragging = True
        beginX = CType(sender, PictureBox).Location.X
        beginY = CType(sender, PictureBox).Location.Y
End Sub

Private Sub Control_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
        Dim cntrl As Control = CType(sender, Control)
        If dragging = True Then
            cntrl.Location = New Point(cntrl.Location.X + e.X - beginX, cntrl.Location.Y + e.Y - beginY)
            'Me.Refresh()
        End If
End Sub

Private Sub Control_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
        dragging = False
End Sub

我不知道为什么这不起作用。

您所拥有的子例程最后缺少其处理程序(即handles语句)。

例如:

Private Sub Control_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) HANDLES controlName.MouseUp
    dragging = False
End Sub

尝试这个:

    Dim cmd As Boolean = False     
    Dim sp As Point
    Private Sub Form1_Load() Handles MyBase.Load 
        For Each Control As Picturebox In Me.Controls.OfType(Of Picturebox)
        AddHandler Control.MouseDown, Sub(sender As Object, e As MouseEventArgs)
                                          cmd = True
                                          sp = e.Location
                                      End Sub
        AddHandler Control.MouseMove, Sub(sender As Object, e As MouseEventArgs)
                                          If cmd Then
                                              Control.Location = Control.Location - sp + e.Location
                                          End If
                                      End Sub
        AddHandler Control.MouseUp, Sub(sender As Object, e As MouseEventArgs)
                                        cmd = False
                                    End Sub 
        Next
    End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM