Vb.net 如何捕捉运行时对象上的事件
我正在创建一个在运行时带有几个按钮和一个组合框的表单Vb.net 如何捕捉运行时对象上的事件,vb.net,Vb.net,我正在创建一个在运行时带有几个按钮和一个组合框的表单 dim f as new form (废话) 然后设置按钮acceptDescription和rejectDescription… 然后设置组合框descriptionCombo 然后 AddHandler acceptDescription.Click, AddressOf handleAcceptedDescription AddHandler rejectDescription.Click, AddressOf handleReje
dim f as new form
(废话)
然后设置按钮acceptDescription和rejectDescription…然后设置组合框descriptionCombo 然后
AddHandler acceptDescription.Click, AddressOf handleAcceptedDescription
AddHandler rejectDescription.Click, AddressOf handleRejectedDescription
然后我有这两种方法来捕捉点击事件。。。但不知道如何引用其他运行时生成的控件。(组合框如果接受,表格如果拒绝)
为什么你不能引用它?只需将其另存为模块/表单级别变量,即可进行设置。如果生成表单的代码位于主表单中,则在主表单类的类级别声明表单变量,以便可以从事件处理程序访问它。组合框和文本字段也是如此-您需要确保在处理程序范围之外声明变量,以便在处理程序中引用它们。为了避免全局定义,最好的答案是
Private Sub handleRejectedDescription(ByVal sender As System.Object, ByVal e As System.EventArgs)
'sender is a button in this case.
'get the button
dim b as new button
b = ctype(sender,button)
'now get the button's parent form
dim f as new form
f = ctype(b.parent, form)
'now close the form
f.close()
End Sub
这应该行得通——但我认为这必须是可能的,而不需要声明更多的全局变量。谢谢。如果表单每次都以相同的方式生成,您可以考虑用组合框和文本框公开的方式编写一个新的表单子类。
Private Sub handleRejectedDescription(ByVal sender As System.Object, ByVal e As System.EventArgs)
'sender is a button in this case.
'get the button
dim b as new button
b = ctype(sender,button)
'now get the button's parent form
dim f as new form
f = ctype(b.parent, form)
'now close the form
f.close()
End Sub