Je suis sur le bord de la folie ...Interaction entre deux contrôles utilisateur
Dans l'application, je suis en fait la construction, je fais face à deux contrôles dynamiquement ajoutés qui ont besoin d'interagir les uns avec les autres, mais j'ai réduit le problème à un exemple as-simple-as-I-can-make-it avec les contrôles étant chargés statiquement, et il présente toujours le même problème: une exception NullReferenceException lors de l'appel du délégué. Voici l'essentiel:
contrôle 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
Contrôle 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
Si je mets un point d'arrêt sur la ligne de Control2 où le délégué Control1 est affecté, je peux l'étape à travers et regardez-le se mettre dans l'objet Control1. Toutefois, lorsque l'événement btnButton_Click se déclenche, la valeur de _delClicked est retournée à Nothing.
Toute aide serait grandement appréciée. Merci!
Vous avez raison, il devrait être à l'init au lieu de la charge, mais il a toujours le même résultat. – Blumer