1

フォームが最初に表示されたときにサウンドを再生しようとしています (より良い例を求めて標準のメッセージ ボックスが行うように)。デザイナーを通じて追加された標準フォームを使用する場合、通常、標準の onshown イベントをオーバーライドしてこれを行い、次に MyBase.OnShown(e) を呼び出します。

私が今遭遇した問題は、フォームがプログラムで作成されていることです (Dim myForm as new Form など)。そのため、AddHandler を使用してこのイベントをオーバーライドできないようです。私がこれを完全に間違った方法で行っていることは間違いありませんが、提供できるアドバイスをいただければ幸いです。私は VB.net の観点からのアドバイスを希望しますが、C# ではほとんどごちゃごちゃできます。

4

2 に答える 2

1

Form.OnShownイベントではありません。むしろ、FormフォームのShownイベントを発生させるクラスのメソッドです。OnShownメソッドを説明する MSDN の記事は次のとおりです。

http://msdn.microsoft.com/en-us/library/system.windows.forms.form.onshown.aspx

フォーム デザイナーを使用して派生クラスを作成する場合は、OnShownメソッドをオーバーライドできますが、フォームのパブリック インターフェイスを介してフォームにアクセスするだけの場合は、Shown代わりにイベントを使用する必要があります。次のように、そのイベントのイベント ハンドラーを追加できます。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim f As Form1 = New Form1()
    AddHandler f.Shown, AddressOf f_Shown
    f.Show()
End Sub

Private Sub f_Shown(ByVal sender As Object, ByVal e As EventArgs)

End Sub
于 2012-07-17T13:22:06.823 に答える
0

フォームはコードに存在しないため、実際にはイベントを呼び出す必要があります。

最初に表示コードを書き出してみてください。

Public Sub form_Showing(ByVal sender As Object, e As EventArgs)
  // play sound
End Sub

次に、フォームを作成するときに、イベントのハンドラーを追加します。

Dim f As New Form
AddHandler f.Shown, AddressOf form_Showing
f.Show()
于 2012-07-17T13:17:58.670 に答える