Blu*_*mer 5 vb.net asp.net user-controls delegates nullreferenceexception
我快要疯了......
在我正在构建的应用程序中,我正在处理需要相互交互的两个动态添加的控件,但我已经将问题简化为一个简单的,因为我可以制作它的示例控件是静态加载的,它仍然存在同样的问题:调用委托时出现NullReferenceException.这是要点:
控制1
Partial Class Control1
Inherits System.Web.UI.UserControl
Private _delClicked As System.Delegate
Public WriteOnly Property UpdateLabel() As System.Delegate
Set(ByVal value As System.Delegate)
_delClicked = value
End Set
End Property
Protected Sub btnButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnButton.Click
Dim aObj(0) As Object
aObj(0) = 1
_delClicked.DynamicInvoke(aObj)
End Sub
End Class
Run Code Online (Sandbox Code Playgroud)
控制2
Partial Class Control2
Inherits System.Web.UI.UserControl
Protected WithEvents Control1 As New Control1
Delegate Sub ChangeLabel(ByVal int As Integer)
Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
Dim delChangeLabel As New ChangeLabel(AddressOf UpdateLabel)
Me.Control1.UpdateLabel = delChangeLabel
End Sub
Private Sub UpdateLabel(ByVal int As Integer)
lblLabel.Text = "Value is now " & int
End Sub
End Class
Run Code Online (Sandbox Code Playgroud)
如果我在分配了Control1委托的Control2的行上放置一个断点,我可以单步执行并观察它在Control1对象中的设置.但是,当btnButton_Click事件触发时,_delClicked的值已回到Nothing.
任何帮助将不胜感激.谢谢!