0

我正在使用一个函数来返回一个字符串,其中包含我想播放的 *.wav 文件的路径。

这是用于确定当用户单击某物等时播放哪种声音的函数......

Function GetSoundPath() As String
    Dim theme As String, appPath As String, soundPath As String
    theme = GetUserTheme()
    appPath = LCase(Application.StartupPath & "\themes\" & theme & "\sounds\click.wav")

    Return soundPath

End Function

上述函数获取需要播放的 *.wav 文件的正确路径。问题是当我将我的函数与“My.Computer.Audio.Play(GetSoundPath)”一起使用时,我收到一个错误消息:

创建表单时出错。有关详细信息,请参阅 Exception.InnerException。错误是:表单在构造过程中从默认实例引用自身,导致无限递归。在表单的构造函数中,使用“我”来引用表单。

我检查了 application.vb 文件,没有找到对我的表单的引用,因为它的名称为“wisealarm”。该表格应该被称为“我”。更奇怪的是,当我在命令中手动输入路径时,它可以正常工作.. ex My.Computer.Audio.Play("c:\users\sound.wav")

任何见解将不胜感激。如果需要任何进一步的代码或详细信息,请告诉我。谢谢。

4

1 回答 1

0

表单的初始化中有些东西会导致错误,例如类的初始化。如果此函数中发生错误,您可以将调用(或使用“New”初始化)移到 Dim(或等效)语句之外以进行更正常的调试。这可能在 form_load 函数中。

此外,您将返回一个未定义的变量 SoundPath——也许您应该在赋值语句中将 appPath 替换为 SoundPath。

于 2013-01-31T17:39:35.740 回答