【问题标题】:Animated sliding form VB.Net动画滑动窗体 VB.Net
【发布时间】:2018-04-07 03:44:15
【问题描述】:

编辑:

所以现在我的表单位置已根据 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,然后我使用以下命令将其向左移动:

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,如果完全移动到页面底部。

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

【问题讨论】:

    标签: vb.net winforms


    【解决方案1】:

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

    例如

      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

      Dim Withevents tmr As New Forms.Timer
      Dim myXLocation as integr
      Private sub Btn_Click()
        Tmr.start()
    
      Private sub tmr_Tick()
        myXloc= myXloc+ 1
        MyForm.Location=New Point(myXloc,yloc)
        If myXloc>= 190 Then  'change 190 to whatever u want :)
         Tmr.Stop()   
        End if 
    

    【讨论】:

      猜你喜欢
      • 2012-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-03
      • 2019-06-17
      • 2023-03-05
      • 1970-01-01
      • 2016-11-26
      相关资源
      最近更新 更多