Le fait de la déclarer ta variable en static fait qu'elle est globale à tous les objets de la même classe mais pas à tous les objets de ton projet.
L'équivalent en VB.NET c'est
Public Shared ChaineBD as String
Je m'explique un peu mieux (du moins j'essaie). Tu me dis que tu as une page d'accueil puis d'autres pages. J'en déduis que tu as défini plusieurs classes (une par type de page).
Donc le fait de rendre ta variable static ne te sert à rien puisque tes pages n'instancient pas la même classe et ta variable ne sera visible que par les pages de la classe où tu l'as déclarée.
Cependant ton problème a une solution toute simple. Tu déclares ta variable (en mode privé de préférence) normalement dans la classe de ta page d'acceuil. Puis tu crées une propriété
(publique cette fois ci) permet de consulter ta variable : soit en lecture seule ou en lecture écriture selon ce que tu souhaites faire. Puis tu redéfinis les contructeurs des toutes tes autres
classes en ajoutant un paramètre qui est ta page d'accueil. Et ton problème est résolu.
C'est peut-être pas très claire alors je te mets un morceau de code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| Class PageAccueil
' Ici c'est le code généré par le concepteur de VB.
// Ta variable que tu souhaites globale.
Private _maVariableGlobale As String
// Propriété permettant d'accéder à ta variable.
Public Property maVariableGlobale () As String
Get
Return _maVariableGlobale
End Get
Set (ByVal Value As String)
_maVariableGlobale = Value
End Set
End Property
Public Sub OuvertureAutrePage()
// Appel du constructeur redéfini.
Dim maPage As New AutrePage(Me)
maPage.Show()
End Sub
End Class
Class AutrePage
' Ici c'est le code généré par le concepteur de VB.
Private _pageAccueil As PageAccueil
// Rédéfinission du constructeur.
Public Sub New(ByRef accueil As PageAccueil)
Me.New
_pageAccueil = accueil
End Sub
Public Sub utilisationVariableGlobale()
MessageBox.Show(_pageAccueil.maVariableGlobale)
End Sub
End Class |
Je te garantie pas que le code est sans erreur car je l'ai taper directement dans le message donc .......... C'est toujours une trame.
Partager