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 :

2 forms et une classe


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 263
    Par défaut 2 forms et une classe
    Bonjour ou plutôt bonsoir !!

    Voila mon problème, je dois développer une application en VB.NET qui existe deja, en gros il y a une classe, une form qui existe deja avec plein de composant graphique.

    Mon objectif est de crée une seconde form à partir de la premiere grace à un bouton. Alors cette partie est plutot facil, j'ai pas eux de souci pour la faire. Le plus dure est que la seconde form est un gestionnaire d'alarme (un tableau avec toutes les alarmes qui ont étés activés dans le form1). Alors j'ai décidé de crée une classe alarme a par qui permet de créer des objets alarme1, alarme2, etc... car les alarmes ont plusieurs propriétés qui varie d'une alarme à l'autre.

    Jusqu'ici tous va bien mais le souci est que les caractéristiques de mes alarmes activés, je dois les importés dans mon tableau et je sais pas comment faire, du moins j'ai des idées mais je sais pas si elle marcheront.

    Deja une fois que ma classe alarme fini, je sais pas si je peux crée créer mes objet alarme dans le form2, si c'est le cas, alors sa sera facile d'intégrer les caractéristique de chaque alarme dans mon tabeau sinon si je devais créer mes objets dans la classe alarme, comment je fais pour que les caratéristiques soient globale pour d'autre classe ou d'autre form ?

    Un form est une class en gros si j'ai bien compri, comment je peux créer des objets d'une classe dans une autre classe sachant que l'hitage de classe ne marche pas trop ici, du moins je crois car c'est pas des classe qui se ressemble.

  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
    Par défaut
    Bonjour,

    Dans ton bouton tu remplis ta classe et tu la passes en paramètre à ta 2éme fenêtre.
    Dans Form1 sur le clic bouton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            ' remplir classe alarme
            ' ... MaClasseAlarme.propritété = valeur
            Dim f As form2 = New form2(MaClasseAlarme)
            f.Show()
    Dans Form2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        Dim clsAlarme As ClassAlarme
     
        Public Sub New()
            InitializeComponent()
        End Sub
     
        Public Sub New(ByVal LaclassAlarme As ClassAlarme)
            InitializeComponent()
            clsAlarme = LaClassAlarme
        End Sub
     
        Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    '        TextBox1.text = clsAlarme.propriété
    '...
    [Edit]
    Mais il faudrait nous donner un peu plus de précision sur
    Citation Envoyé par dragondumond Voir le message
    je sais pas si je peux crée créer mes objet alarme dans le form2
    Comment représenteras tu tes objets?

    On peux créer des controles dynamiquement sur Form2. (textbox, label, ...)

    A+, Hervé.
    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 éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 263
    Par défaut
    Si je crée une classe Alarme, avec des propriété comme Nom, Niveau de priorité, Description, etc.... ensuite je pourrais créer mes objets alarmes:

    ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim alarme1 As New Alarme
    alarme1.Nom = "Détection de fuite"
    alarme1.NiveauDePriorité = 1
    alarme1.Description = "Détection de fuite sur le réservoir 1"
    Mais ces objets doivent être en temps réel donc au lieu de les créer la classe alarme dans le bouton, je devrai plutôt la mettre dans mon timer de form1 mais ma question est si je met ma classe alarme dans mon timer de mon form1, comment je fais pour retrouver les informations de mes objets alarmes dans le form2 et ou je dois créer mes objets alarmes ?


    Dans mon form2, c'est plutôt un tableau que je vais créer au lieu de label et texbox car ensuite je dois géré mes alarmes qui ont était activé et qui devront s’afficher dans un tableau dynamique sur le form2 !!

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 263
    Par défaut
    Vous pouvez aussi m'expliquer a quoi servent les Private Sub et Public Sub dans form2 svp !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Public Sub New()
            InitializeComponent()
        End Sub
     
        Public Sub New(ByVal LaclassAlarme As ClassAlarme)
            InitializeComponent()
            clsAlarme = LaClassAlarme
        End Sub

  5. #5
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Tu peux faire une property de liste d'alarmes dans ton form1, si la property est public et non WriteOnly, tu pourras la lire dans ta form2 avec form1.MaListeDalarmes


    Citation Envoyé par dragondumond Voir le message
    Vous pouvez aussi m'expliquer a quoi servent les Private Sub et Public Sub dans form2 svp !!

    http://plasserre.developpez.com/cours/vb-net/?page=poo2#LXV-F-3

    Public
    Les procédures déclarées avec le mot clé Public ont un accès public. Il n'existe aucune restriction quant à l'accessibilité des procédures publiques.

    Protected

    Dans un module de classe:
    Les procédures déclarées avec le mot clé Protected ont un accès protégé. Elles sont accessibles seulement à partir de leur propre classe ou d'une classe dérivée.

    Friend
    Les procédures déclarées avec le mot clé Friend ont un accès ami. Elles sont accessibles à partir du programme contenant leur déclaration et à partir de n'importe quel autre endroit du même assembly.

    Protected Friend
    Les procédures déclarées avec les mots clés Protected Friend ont l'union des accès ami et protégé. Elles peuvent être utilisées par du code dans le même assembly, de même que dans les classes dérivées. L'accès Protected Friend peut être spécifié uniquement pour les membres des classes.

    Private
    Les procédures déclarées avec le mot clé Private ont un accès privé. Elles ne sont accessibles qu'à partir de leur contexte de déclaration, y compris à partir des membres de types imbriqués, tels que des procédures.

    © Philippe Lasserre

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 199
    Par défaut
    Citation Envoyé par _Ez3kiel Voir le message
    Tu peux faire une property de liste d'alarmes dans ton form1, si la property est public et non WriteOnly, tu pourras la lire dans ta form2 avec form1.MaListeDalarmes
    la liste sur form1 non, si ce n'est pas lié à form1 (la preuve on en a besoin sur form2) ca n'a rien à faire sur form1

    form1.maliste non plus, vb autorise cette écriture mais elle n'est pas recommandée surtout parce qu'elle peut ne pas fonctionner, il faut une instance déclarée dans le code
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 263
    Par défaut
    En faite, j'ai reussi a faire ce que je voulais, j'ai crée ma classe Alarme en public dans un module et il était possible de crée les objets alarmes ou je veux, ensuite j'ai enregistrer les propriétés de mes objets dans des variables public que j'ai déclarer dans mon module et du coup j'ai réussi a afficher ses propriétés dans mon Form2.

    Merci a vous !!

    Ma solution est peu optimisé mais je suis a mon deuxième jours de stage et il me reste encore 4 mois pour apprendre a optimiser des programmes, pour l'instant, je fais avec les moyens du bord ^^

  8. #8
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 199
    Par défaut
    Citation Envoyé par dragondumond Voir le message
    si je mets ma classe alarme dans mon timer de mon form1, comment je fais pour retrouver les informations de mes objets alarmes dans le form2 et ou je dois créer mes objets alarmes ?
    si tu mets des variables dans un module, elles sont accessibles par tout le monde
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. Retrouver l'instance d'une Form depuis une class
    Par christo45 dans le forum VB.NET
    Réponses: 2
    Dernier message: 31/03/2009, 21h12
  2. Acces aux control d'une form depuis une classe
    Par PhilCou dans le forum Windows Forms
    Réponses: 2
    Dernier message: 22/07/2008, 09h59
  3. Instancier une form depuis une class passer en paramètre
    Par freud dans le forum Windows Forms
    Réponses: 9
    Dernier message: 07/11/2007, 15h26
  4. Réponses: 3
    Dernier message: 31/10/2006, 11h03
  5. Ouvrir une form depuis une class
    Par totoche dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 01/09/2006, 11h13

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