jestem na skraju szaleństwa ...Interakcje pomiędzy dwa formanty użytkownika
W aplikacji Jestem rzeczywiście budynek, mam do czynienia z dwoma dynamicznie dodanych kontroli, które muszą współdziałać ze sobą, ale zmniejszyłem problem do przykładu tak prostego, jak to może być, gdy formanty są ładowane statycznie, i nadal przedstawia ten sam problem: wyjątek NullReferenceException podczas wywoływania delegata. Oto sedno:
sterowania 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
sterowania 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
Jeśli mogę umieścić punkt przerwania na linii kontroli2 gdzie jest przypisany delegat kontroli1, mogę kroku przez i obserwuj, jak ustawia się w obiekcie Control1. Jednak po wywołaniu zdarzenia btnButton_Click wartość _delClicked powróciła do Nothing.
Każda pomoc zostanie bardzo doceniona. Dzięki!
masz rację, powinno być w init zamiast obciążenia, ale wciąż ma ten sam rezultat. – Blumer