gpt4 book ai didi

vb.net - 在VB Net中每秒更新文本 block 的文本

转载 作者:行者123 更新时间:2023-12-03 02:19:35 25 4
gpt4 key购买 nike

我有一个Sub,在创建新窗口时会进行处理。它使用Irrklang库加载并播放mp3文件。但是如何更新播放位置。我听说我可以使用计时器,但是如何在子计时器内使用它呢?

Private Sub  MainWindow_Loaded(sender As Object, e As RoutedEventArgs)

Dim Music = MyiSoundengine.Play2D("Music/001.mp3")

I Want to update this in every sec!
Dim Music_Playposition = Music.Playpostion

End Sub

最佳答案

您不能在方法/子内部使用计时器。计时器工作的唯一方法是定期引发事件。在计时器的情况下,称为“滴答”事件,每次计时器“滴答”时都会引发。

您可能已经知道什么是事件了,您的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将事件处理程序方法连接到所需的事件。

关于vb.net - 在VB Net中每秒更新文本 block 的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15430783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com