动画滑动形式VB.Net

时间:2018-04-06 15:15:10

标签: vb.net winforms

编辑:

所以现在根据ZackRyan的回答确定我的表单位置,但是我仍然无法在它向左滑动后将其移回原始位置。

这是我希望将表单移动到原始位置的代码

    Private Sub Label7_Click(sender As Object, e As EventArgs) Handles Label7.Click

    Me.Close()


    'Testing.StartPosition.CenterScreen
    For MoveLeft = Form2.Location.X To 30 Step 1
        Form2.Left = MoveLeft
        Form2.Refresh()
        Threading.Thread.Sleep(0)
    Next


End Sub

这是原始位置:

    Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim xLoc = Me.Location.X
    Dim yLoc = Me.Location.Y
    Me.Location = New Point(xLoc, yLoc)

End Sub

------------------------------------------ // --- -----------------------------------------------

我正在创建一个Windows应用程序,其中表单平滑地向左移动,一切正常。我的问题是把它带回到它的初始位置。

表单加载时默认位置设置为CenterScreen I然后使用以下内容将其移动到左侧:

Private Sub Label3_Click(sender As Object, e As EventArgs) Handles Label3.Click
  For MoveLeft = FormStartPosition.CenterScreen To 18 Step 1
    Me.Left -= MoveLeft
    Me.Refresh()
    Threading.Thread.Sleep(1)
  Next

为了让它回去,我尝试了反过来:

Private Sub Label9_Click(sender As Object, e As EventArgs) Handles Label9.Click
  For MoveLeft = FormStartPosition.CenterScreen To 18 Step 1
    Me.Left = MoveLeft
    Me.Refresh()
    Threading.Thread.Sleep(1)
  Next

这只能部分起作用。表单向右移动是必需的,但如果完全移动到页面底部,则不是从当前位置移动到CenterScreen。

我基本上需要它顺利回到原来的中心屏幕位置。

1 个答案:

答案 0 :(得分:1)

只需将表单的位置(表单加载)存储在某些变量中......

E.g。

someObj.someChild.selectAll('circle.some-class').data(newData)

然后按如下方式使用它:

  Dim xLoc = MyForm.Location.X
  Dim yLoc = MyForm.Location.Y

'Or

 Dim xLoc = MyForm.Bounds.Left
 Dim yLoc = MyForm.Bounds.Top

'or

Dim loc As Point = MyForm.Location

最后一件事,我真的没有发现你的代码非常有趣,可以在表单中滑动..你可以很容易地使用 MyForm.Location = New Point(xLoc,yLoc) 'or MyForm.Location = New Point(loc)

Timer