メソッド/サブ内でタイマーを使用することはできません。タイマーが機能する唯一の方法は、定期的にイベントを発生させることです。タイマーの場合、これは「ティック」イベントと呼ばれ、タイマーが「ティック」するたびに発生します。
おそらく、イベントが何であるかをすでに知っているでしょう。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
は、コンストラクターの内部を使用して、イベントハンドラーメソッドを目的のイベントに接続する必要があります。