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

VB.NET Discussion :

Faire accès à une proprieté d'une class à partir d'une autre class


Sujet :

VB.NET

  1. #1
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Points : 929
    Points
    929
    Par défaut Faire accès à une proprieté d'une class à partir d'une autre class
    Bonjour

    J'ai 3 form : form1 form2 et form3
    dans la form1 je choisis le langage d'un jeu et veux me servir de cette proprieté dans d'autres forms
    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
    Public Class Form1
        Private mode As String
         Property language As String
            Get
                Return mode
            End Get
            Set(value As String)
                mode = value
            End Set
        End Property
     
     Private Sub mybutton_MouseClick(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles mybutton.MouseClick
            Form2.Show()
            Me.Close()
        End Sub
     
    End Class
    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
    Public Class Form2
      Private french As Boolean
       Private Sub DesignMenustrip()
            If Form1.language = "French" Then
                french = True
             else 
                french = false
            end if
        end sub 
     
    Private Sub Buttonnext_MouseClick(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Buttonnext.MouseClick
           form3.Show()
            Me.Close()
        End Sub
    end class
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Class Form3
     
       Private Sub DesignMenustrip()
            If Form1.language = "French" Then
               '.......
             else 
                '........
            end if
        end sub 
     
    end class

    le problème se situe dans form3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      If Form1.language = "French" Then
    comme form1 est close une nouvel instance est crée
    quelle solution pour que "langage soit accessible à tous" ?
    mettre dans un module ?

    merci

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    2 solutions

    Tu surcharges les "new" des "form"
    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
    Public Class Form2
        Private language As String
        Private french As Boolean
     
        Sub New(l As String)
            InitializeComponent()
            language = l
        End Sub
        Private Sub DesignMenustrip()
            french = (language = "French")
        End Sub
        Private Sub Buttonnext_MouseClick(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Buttonnext.MouseClick
            Dim f As form3 = New form3(language)
            f.Show()
            Me.Close()
        End Sub
    Idem avec form3
    Appel depuis form1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Private Sub mybutton_MouseClick(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles mybutton.MouseClick
            Dim f As form2 = New form2(language)
            f.Show()
            Me.Close()
        End Sub
    Tu peux certainement simplifier avec les variables french et language pour n'en avoir qu'une. Ca c'est suivant tes besoins.


    Tu crés une classe contexte de travail que tu utilises pour tous les éléments globaux (avec les éléments en Shared) (équivalent au module mais plus objet).
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  3. #3
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Points : 929
    Points
    929
    Par défaut
    merci
    J'ai opté pour une class global
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Class Classglobal
        Public Shared language As String
    End Class

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/10/2013, 12h19
  2. Réponses: 1
    Dernier message: 13/08/2008, 15h57
  3. Acces à l'arborescence d'un disque à partir d'une page jsp
    Par fabricew59 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 29/09/2006, 16h53
  4. [XSLT] faire un tableau à 2 colonnes à partir d'une liste ?
    Par Gob0_ dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 17/08/2006, 11h14
  5. Réponses: 6
    Dernier message: 19/11/2004, 16h52

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