Ширина анимированной панели в зависимости от количества секунд - PullRequest
0 голосов
/ 11 января 2019

Можно ли анимировать ширину панели в течение трех секунд или в зависимости от количества секунд, которые я передаю методу / функции?

В настоящее время я использую таймер для изменения ширины, но у него нет определенного количества секунд для завершения анимации.

Это мой текущий код:

Private Sub Button1_Click()
    Timer1.Enabled = True
End Sub

Private Sub Timer1_Tick()
    If Panel1.Width < 50 Then
        Panel1.Width += 10
    Else
        Me.Dispose()
        Timer1.Enabled = Flase
    End If
End Sub

Я хочу иметь такую ​​функцию

Private Sub AnimateWidth(ByRef pnl As Panel, ByVal MaxWidth As Integer, ByVal NumberOfSeconds as Double)
    'This is where I'm Lost. I dont have any idea what to do
End Sub

1 Ответ

0 голосов
/ 12 января 2019
Public Sub FadeIn(ByVal TotalSeconds As Single, ByRef frm As Form)
    If TotalSeconds = 0 Then
        frm.Opacity = 1
        Exit Sub
    End If
    Dim [then] As Double = DateAndTime.Timer
    Dim difference As Double = 0
    Do While difference < 1
        frm.Opacity = difference
        difference = (DateAndTime.Timer - [then]) / TotalSeconds
        System.Threading.Thread.Sleep(10)
    Loop
    frm.Opacity = 1
End Sub
...