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 :

Accès entre classes


Sujet :

VB.NET

  1. #1
    Membre du Club Avatar de gaetan13
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2010
    Messages : 90
    Points : 56
    Points
    56
    Par défaut Accès entre classes
    Bonjour,
    J'ai une petite question qui j’espère n'a pas déjà été posée.
    J'ai un Form basique avec mon interface graphique dessus, mes labels etc. Dans cette classe je déclare d'autres classes comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Public cls as MaClasse = New MaClasse ()
    Jusque là rien de bien compliqué. Le truc c'est que je veux que depuis mes classes instanciées je puisse mettre à jour mon interface graphique (genre labels etc)

    Donc la première idée qui me vient c'est de passé Me en paramètre pour pouvoir accéder à mon interface depuis la classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Public cls as MaClasse = New MaClasse (Me)
    Le truc c'est que je trouve pas ça très propre et il y a certainement d'autres méthodes pour imbriquer les classe.

    Ma question est la suivante : Comment organiser le programme de façon à ce que les classes instanciées puissent mettre à jour l'interface graphique et ce de la façon la plus propre possible ?

    Merci beaucoup.

  2. #2
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Bonsoir,

    Votre classe doit exposer des propriétés publiques que vous pouvez lié avec votre interface en faisant du data Binding.
    Vous pouvez aussi exposer des événements dans votre class et les lier a des méthodes dans votre vue.

  3. #3
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    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 177
    Points : 25 125
    Points
    25 125
    Par défaut
    Citation Envoyé par gaetan13 Voir le message
    Le truc c'est que je trouve pas ça très propre et il y a certainement d'autres méthodes pour imbriquer les classe.
    il n'y a rien de "pas propre" à passer Me, c'est une pratique courante et donc une des possibilités

    par contre une classe non graphique qui modifie des controles, dans la plupart des cas c'est ça la mauvaise idée ^^
    c'est pour une classe de données ou une classe qui sert à gérer des controles ?

  4. #4
    Membre du Club Avatar de gaetan13
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2010
    Messages : 90
    Points : 56
    Points
    56
    Par défaut
    Bonjour,
    Merci pour vos réponses, j'ai testé les databinds hier soir, je n'avais jamais utilisé.

    @pol C'est une classe qui va gérer un périphérique par un port série. Admettons qu'on ai une variable "statut" dans cette classe, il faut que l'interface se mette à jour pour indiquer le nouveau "statut".

  5. #5
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    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 177
    Points : 25 125
    Points
    25 125
    Par défaut
    ta classe doit juste exposer une propriété statut
    c'est le form qui va aller lire le statut

    si tu as plusieurs forms qui doivent afficher cette info, il ne faut qu'une instance de cette classe, et qu'elle soit accessible par les 2 forms, l'instanciation devrait donc être indépendante des forms, pour ca une instance shared quelque part (singleton si nécessaire) convient (c'est l'équivalent d'une variable dans un module)

  6. #6
    Membre du Club Avatar de gaetan13
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2010
    Messages : 90
    Points : 56
    Points
    56
    Par défaut
    Merci, je vois ce que vous voulez dire. Mais si le statut change d'un coup il faut que la form détecte ce changement pour mettre à jour l'interface. Qu'est-ce qui convient le mieux ? Databind, événement ou autre ?

  7. #7
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    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 177
    Points : 25 125
    Points
    25 125
    Par défaut
    Citation Envoyé par gaetan13 Voir le message
    Merci, je vois ce que vous voulez dire. Mais si le statut change d'un coup il faut que la form détecte ce changement pour mettre à jour l'interface. Qu'est-ce qui convient le mieux ? Databind, événement ou autre ?
    les 2 conviennent
    et dans autre, il y a le timer sur le form qui vient lire la propriété mais c'est pas forcément la mieux

  8. #8
    Membre du Club Avatar de gaetan13
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2010
    Messages : 90
    Points : 56
    Points
    56
    Par défaut
    Merci à vous deux. Je vais certainement utiliser les databinds et événements + singleton.

  9. #9
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Points : 372
    Points
    372
    Par défaut
    Bonjour,
    Le sujet m'interresse beaucoup mais j'ai manqué de temps pour faire mes propres essais.
    Dites moi si je me trompe mais il me semble que si on veux utiliser le DataBindinding, la classe doit implémenter InotifyPropertyChanged et lever un evenement avec RaiseEvent dans la propriété liée afin de pouvoir notifier les controles quand cette propriété change. Comme ceci :

    http://msdn.microsoft.com/fr-fr/libr...tyChanged.aspx

  10. #10
    Membre du Club Avatar de gaetan13
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2010
    Messages : 90
    Points : 56
    Points
    56
    Par défaut
    C'est exact

Discussions similaires

  1. Acces entre différentes classes
    Par Microturnip dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 14/05/2008, 10h24
  2. Accèss à des fonctions entre classes
    Par vincetrader dans le forum C++
    Réponses: 4
    Dernier message: 08/09/2005, 13h45
  3. [AS2] liaison entre classe et symbole
    Par ooyeah dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 04/07/2005, 09h41
  4. [Visual C++6] Accès à une classe d'une dll
    Par charliejo dans le forum MFC
    Réponses: 12
    Dernier message: 09/03/2005, 16h48
  5. Pb accès entre 2 classes static
    Par d.w.d dans le forum C++
    Réponses: 5
    Dernier message: 23/02/2005, 19h05

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