Вы не можете использовать таймер внутри метода/под. Единственный способ работы таймера - периодически поднимать события; в случае таймера это называется событием «Tick», которое увеличивается каждый раз, когда таймер «тикает».
Возможно, вы уже знаете, что такое события: ваш метод MainWindow_Loaded
обрабатывает один, событие Loaded
класса MainWindow
.
Так что вам нужно добавить таймер в ваше приложение, обработать его событие Tick и внутри этого обработчика событий обновить текстовое поле с текущей позицией.
Например:
Public Class MainWindow
Private WithEvents timer As New System.Windows.Threading.DispatcherTimer()
Public Sub New()
' Initialize the timer.
timer.Interval = new TimeSpan(0, 0, 1); ' "tick" every 1 second
' other code that goes in the constructor
' ...
End Sub
Private Sub timer_Tick(sender As Object, e As EventArgs) Handles timer.Tick
' TODO: Add code to update textbox with current position
End Sub
Private Sub MainWindow_Loaded(sender As Object, e As RoutedEventArgs)
' Start the timer first.
timer.Start()
' Then start playing your music.
MyiSoundengine.Play2D("Music/001.mp3")
End Sub
' any other code that you need inside of your MainWindow class
' ...
End Class
Обратите внимание на использование WithEvents
ключевого слова в объявлении класса уровня объекта таймера. Это упрощает обработку событий, используя только инструкции Handles
обработчика событий. В противном случае вы должны использовать AddHandler
внутри конструктора, чтобы связать методы обработчика событий с желаемыми событиями.