0

このコードを実行するフォームを実行しようとするたびに、作成中のプログラムに問題があります。

Private Sub customDuffer_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles customDuffer.DoWork
    While (Me.Visible = True)
        For Each tone In trackWriter.noteArray
            If switch = True Then
                Beep.tone(1000, note, 240)
            End If
        Next tone
    End While

Beep.tone(1000, note, 240)<< これは例外をスローする行です。メインフォームにまったく同じコードがあり、他の場所では完全に実行されますが、実行されるはずのフォームでのみ例外が発生します。

注配列は公開されており、どこからでもアクセスでき、カスタムクラスのビープ音は正常に機能します。どんな助けでも大歓迎です。

4

1 に答える 1

1

Beep または note 変数は初期化されていない必要があります。デバッグ コードを追加します。

If switch = True Then
  If Beep is Nothing then MsgBox ("Beep is nothing!")
  If note is Nothing then MsgBox ("note is nothing!")
  Beep.tone(1000, note, 240)
End If

実行して、どのメッセージがポップアップするかを確認してください。次に、どこで初期化するかを考えます。

どちらのメッセージも表示されない場合は、Beep.tone() メソッドに初期化されていない変数のバグがあります。

于 2012-06-08T05:13:50.220 に答える