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 :

Communication entre Class


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Scientist
    Inscrit en
    Mai 2013
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Scientist
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2013
    Messages : 110
    Par défaut Communication entre Class
    Bonsoir,

    Voila, j'ai une Forme principale avec un Bouton Add.
    J'appuie sur ce Bouton Add et je cree une PictureBox provenant d'une Class A (Inherits PictureBox).
    A un moment donne, je fais apparaitre sur cette PictureBox un Panel provenant d'une Class B (Inherits Panel).
    Cette Class B cree un Panel avec 2 TextBox (Width et Height) et un Bouton OK.

    Je voudrais donc quand j'appuie sur le Bouton OK transmettre les donnees des 2 TextBox vers la Class A et transformer ainsi la PictureBox avec les valeurs Width et Height.

    J'ai essaye de mettre une Fonction Public dans la Class A et de l'utiliser dans la Class B, mais cela ne marche pas. Ce n'est surement pas la bonne facon de proceder, mais je ne vois pas comment m'y prendre.

    Toutes idees ou directions sont les bienvenues, probablement un probleme purement POO!

    D'ailleurs, si vous connaissez un bon bouquin POO (avec exemple VBnet si possible), je suis preneur.
    A l'heure actuelle, j'apprend la POO avec des articles trouves a droite a gauche (MSDN ou P.Lasserre par exemple).

    Merci,
    A+
    JLuc01

  2. #2
    Membre très actif
    Avatar de charouel
    Homme Profil pro
    Freelance
    Inscrit en
    Mars 2009
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 618
    Billets dans le blog
    9
    Par défaut
    Tu peux ajouter une classe statique et tu rempli les propriété lorsque tu est au classe A ensuite tu affecte des données lorsque tu est sur la Classe B. C'est simple

  3. #3
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Bonjour,
    Pour ma part, j'opterais plutôt pour un évènement qu'une classe statique. D'autant que lorsque B met à jour les données de la classe statique, comment A le sait (où alors j'ai pas compris) ?
    D'après ce que je comprends, A connait B mais B ne connait pas A. Si B doit notifier A qu'il a changé, il peut déclencher un event auquel A se sera préalablement abonné. Une autre méthode consisterai à ... revoir la conception mais là, on n'en sait pas assez pour donner des idées.

    eb.

  4. #4
    Membre très actif
    Avatar de charouel
    Homme Profil pro
    Freelance
    Inscrit en
    Mars 2009
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 618
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par ebastien Voir le message
    Bonjour,
    Pour ma part, j'opterais plutôt pour un évènement qu'une classe statique. D'autant que lorsque B met à jour les données de la classe statique, comment A le sait (où alors j'ai pas compris) ?
    D'après ce que je comprends, A connait B mais B ne connait pas A. Si B doit notifier A qu'il a changé, il peut déclencher un event auquel A se sera préalablement abonné. Une autre méthode consisterai à ... revoir la conception mais là, on n'en sait pas assez pour donner des idées.

    eb.
    Il peux utilisé les événement oui et pour chaque composent graphique il fait une méthode public qui retourne le type de composent.

  5. #5
    Membre confirmé
    Homme Profil pro
    Scientist
    Inscrit en
    Mai 2013
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Scientist
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2013
    Messages : 110
    Par défaut
    Bonsoir,

    Desole pour le retour un peu lent.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Class cdtPictureBox '(Class A)
        Inherits PictureBox
     
          Public WithEvents mPictureBox As PictureBox
          Public Sub New(ByVal cPictureBox As PictureBox)
            mPictureBox = cPictureBox
     ...
    End Sub
     
    Declaration de Variables et different Evenements (MouseDown, Up , Move...
    + Un evenement Click pour appeller la Class B

  6. #6
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour

    Dans ce design ,ce qui m'intrigue ce n'est pas le probleme POO en lui meme ni sa faisabilite .Tout peut etre fait...

    Comme le panel est contenu dans le picbox et qu'il le resize le picbox,pour peu que l'user fasses un rescale en reduction ,le panel ne sera plus visible et on aura plus acces au panel avec ses 2 textbox...

    Pour un user c'est une aberration.......

    Le rescaling d'un control à ma connaissance ,ne peut se faire qu'a partir d'un control qui lui est externe......
    bon code...............

  7. #7
    Membre confirmé
    Homme Profil pro
    Scientist
    Inscrit en
    Mai 2013
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Scientist
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2013
    Messages : 110
    Par défaut
    Bonsoir,

    En bref, j'essaye d'imiter le comportement d'une PictureBox en mode Design.

    En mode Design, la PictureBox a un mini bouton et lorsqu'on clique dessus un Panel apparait. Si je clique sur la Propriete Dock (hyperlink), la PictureBox s'agrandit automatiquement.

    Dans mon cas, mon Panel a un Bouton OK, mais le principe est le meme. Enfin, je crois.

    En fait, ce que je cherche est plus un principe ou une marche a suivre que du code.

    Merci tout de meme,

    A+
    JLuc01

  8. #8
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    re

    Pas du tout ,parce que l'inspecteur des proprietes(propertygrid) est exterieur à la picturbox...
    Alors que ton custom panel va etre un "child control" du picturebox....

    Le principe en matiere d'apparence des controls lorsque ils ont une relation "parent -child" est que le pere de famille a la haute main sur le comportement de ses enfants.....

    bon code....

  9. #9
    Membre confirmé
    Homme Profil pro
    Scientist
    Inscrit en
    Mai 2013
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Scientist
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2013
    Messages : 110
    Par défaut
    Bonsoir,

    Desole pour le retour un peu lent, et je crois un premier message incomplet a 23h02.
    Voila un peu de code pour essayer de mieux m'expliquer.

    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
    Public Class cdtPictureBox '(Class A)
        Inherits PictureBox
     
          Public WithEvents mPictureBox As PictureBox
          Public Sub New(ByVal cPictureBox As PictureBox)
            mPictureBox = cPictureBox
            ' Panel (acting as Button) on mPictureBox
            p.Size = New Size(8, 8)
            p.BackgroundImage = My.Resources.ArrowRight
            p.BackgroundImageLayout = ImageLayout.Stretch
            p.Location = New Point(12, 12)
            p.Visible = False
            cPictureBox.Controls.Add(p)
          End Sub
     
    ' Declaration de Variables et different Evenements (MouseDown, Up , Move...)
    ' + Un evenement Click (le Panel p etant utilise comme un Bouton) pour appeller la Class B
    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
    16
    17
    18
    19
    20
    21
    22
    23
    Public Class cdtInfoPanel ' (Class B)
        Inherits Panel
     
       Public Sub New()
       ' Ici se trouve la construction du Panel avec 2 TextBox, 3 Label et un Bouton OK
       End Sub
     
        Private lblTitle As New Label
        Private lblWidth As New Label
        Private txtWidth As New TextBox
        Private lblHeight As New Label
        Private txtHeight As New TextBox
        Friend WithEvents btnOK As New Button
     
        Private Sub btnOK_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnOK.Click
        ' Ici, je ne sais pas quoi mettre pour changer la PictureBox de la Class A
        ' Voila ce que j'ai essaye...
                pbWidth = CInt(txtWidth.Text)
                pbHeight = CInt(txtHeight.Text)
                Me.Visible = False
                ' Call newWidthHeight(80, 60) : cette fonction declaree Public dans la Class A n'est pas reconnue
        End Sub
    End Class
    En bref, je ne sais pas comment m'y prendre pour changer les valeurs Width et Height de la PictureBox.

    Un probleme de conception, c'est fort possible. Mais, comment arranger ce probleme (Un singleton?).
    Une Class statique! j'avoue ne pas connaitre.
    Un evenement, c'est ce que j'ai essaye de faire avec btnOK.Click, mais surement de travers.

    En esperant avoir ete plus clair cette fois ci.

    Merci et A+
    JLuc01

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

Discussions similaires

  1. Communication entre classes
    Par sunshine33 dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 03/02/2010, 21h04
  2. communication entre classes
    Par milomar dans le forum C++
    Réponses: 6
    Dernier message: 02/03/2008, 11h59
  3. Communication entre classes
    Par matteli dans le forum C++
    Réponses: 6
    Dernier message: 25/02/2008, 11h45
  4. Problème de communication entre classe
    Par FabaCoeur dans le forum Général Java
    Réponses: 4
    Dernier message: 22/01/2008, 13h50
  5. [c#] probléme de communication entre classe
    Par OpenGG dans le forum C#
    Réponses: 1
    Dernier message: 24/09/2006, 21h54

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