IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[VB.NET] Probléme de variable [Débutant(e)]


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 111
    Points : 59
    Points
    59
    Par défaut [VB.NET] Probléme de variable
    J'aimerais savoir comment déclarrer une variable globale pour l'utiliser dans toutes les pages?

    Merci d'avance.
    Silvia

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Points : 291
    Points
    291
    Par défaut
    Tu peux créer un module et tu déclare ta variable de la manière suivante :
    Public maVariable As Integer
    Je ne sais pas ce que tu veux faire avec ta variable globale mais il faut que tu saches que ce n'est pas très propre en générale.

    Tu peux toujours trouver une autre solution comme par exemple en la passant en paramètres de tes fonctions qui l'utilise ....

    Indique nous ce que tu veux faire pour qu'on change ca peut-être ??

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 111
    Points : 59
    Points
    59
    Par défaut
    J'aimerais déclarrer une variable dans ma premiere page (Accueil) et pouvoir utiliser le contenu de la variable dans les autres pages.

    Je sais que en C#, on utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    static public string ChaineBD
    Mais, cela ne marche pas en VB.

    Silvia

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Points : 291
    Points
    291
    Par défaut
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/09/2010, 16h39
  2. Réponses: 7
    Dernier message: 01/12/2009, 15h10
  3. VB.NET Problème avec mes variables
    Par forsay1 dans le forum VB.NET
    Réponses: 3
    Dernier message: 28/10/2008, 20h52
  4. [VB.NET] problème variables dans les textbox
    Par pierrepelerin dans le forum Windows Forms
    Réponses: 6
    Dernier message: 18/10/2006, 00h13
  5. [VB.NET] [Débutant] Probléme de variable dans les requettes
    Par Silvia12 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 07/03/2005, 13h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo