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 :

Aide sur le Pattern Observer


Sujet :

Windows Forms

  1. #1
    Membre à l'essai

    Femme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2016
    Messages : 6
    Points : 19
    Points
    19
    Billets dans le blog
    1
    Par défaut Aide sur le Pattern Observer
    Bonjour,

    J'aimerais pouvoir utiliser les interfaces IObservable(of T) et IObserver(of T). J'ai juste beaucoup de difficultés à l'implanter dans mon programme. Donc j'ai une fenêtre frm_menu (MdiContainer) qui contient un bouton (btn_new) et un label action (lbl_action). Puis j'ai une fenêtre frm_sous_menu(enfant de frm_menu) avec un bouton (btn_fermer). **J'ai raccourci de beaucoup mon code car je veux seulement savoir utiliser le pattern Observer dans cette situation

    Donc, voici ma classe frm_menu

    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 frm_menu
     
        Public listeFenetre As New List(Of frm_sous_menu)
        Public nbreFenetre As Integer = 0
     
        Private Sub btn_new_Click(sender As Object, e As EventArgs) Handles btn_new.Click
            listeFenetre.Add(New frm_sous_menu())
            listeFenetre(nbreFenetre).MdiParent = Me
            listeFenetre(nbreFenetre).Show()
            nbreChrono += 1
        End Sub
     
        Private Sub next_label(name as String)
            lbl_action.text = "Vous venez de fermer la fenêtre " & name
        End Sub
    End Class
    Voici ma classe frm_sous_menu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Class frm_sous_menu
     
        Private Sub btn_fermer_Click(sender As Object, e As EventArgs) Handles btn_fermer.Click
        End Sub
     
    End Class
    Lorsque j'appuie sur le bouton (btn_fermer) de la fenêtre frm_sous_menu, je veux exécuter le code de next_label


    Quelqu'un peux m'aider ?

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    tu peux faire un event sur ta classe sous menu, le raise sur l'event click

    à la création du frm sous menu il faut s'abonner à l'event
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dim fsm as New frm_sous_menu
    addhandler fsm.nom_event, addressof nom_sub
    ou alors tu peux préciser à frm_sous_menu quel sub il doit appeler sur le click

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Public Class frm_sous_menu
     
       private _act as action(of string)
     
       public sub new(actOnClick as action(of string))
           _act = actOnClick
       end sub
     
        Private Sub btn_fermer_Click(sender As Object, e As EventArgs) Handles btn_fermer.Click
           _act.invoke("le string ici si c'est cette classe qui le connait, sinon passer un action tout court")
        End Sub
     
    End Class
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    New frm_sous_menu(addressof next_label)
    enfin truc dans le genre

    après sinon du messaging comme tu souhaites mais ca n'apporte pas grand chose je pense, ca ressemble à de l'evenementiel shared
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre à l'essai

    Femme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2016
    Messages : 6
    Points : 19
    Points
    19
    Billets dans le blog
    1
    Par défaut
    Merci Beaucoup Pol63!

    J'aurais aimé comprendre le pattern Observer mais ta réponse est effectivement ultra plus simple!

    Tout fonctionne à merveille!

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

Discussions similaires

  1. Modélisation à l'aide du design pattern Observer
    Par Pierre Castelain dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 03/02/2013, 17h26
  2. Réponses: 2
    Dernier message: 26/12/2010, 22h08
  3. [Observateur] Précisions sur le design pattern Observer [UML]
    Par joquetino dans le forum Design Patterns
    Réponses: 2
    Dernier message: 07/10/2004, 22h35
  4. [Kylix] Aide sur BitBlt
    Par mic006 dans le forum EDI
    Réponses: 1
    Dernier message: 10/12/2002, 22h54
  5. Aide sur une fenetre
    Par Ray-j dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 29/11/2002, 08h51

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