我试图在首次显示表单时播放声音(就像标准消息框一样,想要一个更好的例子)。如果使用通过设计器添加的标准表单,我通常会通过覆盖标准的onshown事件来执行此操作,然后继续调用MyBase.OnShown(e)
我现在遇到的问题是表单是以编程方式创建的(Dim myForm是新表单等),因此我似乎无法使用AddHandler来覆盖此事件。我不怀疑我是以完全错误的方式做到这一点,但我很欣赏任何可以提供的建议。我更喜欢从VB.net的角度提出建议,但我可以在C#中轻松搞定。
答案 0 :(得分: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
答案 1 :(得分: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()