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 :

accès a un attribut d'une mdi depuis les forms filles


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 23
    Par défaut accès a un attribut d'une mdi depuis les forms filles
    Bonjour,
    je suis débutant en C# alors ma question va sans doute paraitre un peu "noob":
    je développe une application avec une fenetre principale MDI et plusieurs form a l'intérieur, j'ai un objet "connection" qui matérialise ma connection avec une base de donnée.
    Mon problème c'est que je voudrai que cet objet soit accessible partout dans l'appli, entre autre dans les forms.
    J'ai donc tenté de le déclarer en attibut de ma MDI et d'y accéder a partir des forms grace a l'attribut MdiParent en faisait this.MdiParent.connection mais impossible, mon objet reste invisible depuis les forms... pourquoi ?
    Avez vous une idée de l'endroit ou je pourrai déclarer mon objet pour que ca marche?

  2. #2
    Membre chevronné
    Profil pro
    Développeur freelance
    Inscrit en
    Août 2006
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur freelance

    Informations forums :
    Inscription : Août 2006
    Messages : 453
    Par défaut
    ton attribut est déclarée en quoi ? private, public, protected ...


    Mosco

  3. #3
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 23
    Par défaut
    en public, c'est justement ca qui est bizarre normallement il est sensé etre visible....

  4. #4
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Si c'est public, ça devrait marcher.
    Sauf que...
    Si tes forms ne sont pas déclarées "Childs" de la mdi, la référence parent ne rendra rien. Tu peux facilement vérifier ce point en remplacant "this.MdiParent" par le vrai nom de la feuille mdi.

    Ensuite, pour rendre cette connection accessible dans toute l'appli, il y a d'autres solutions :
    - utiliser les "settings"
    - une que j'aime bien : stocker toutes ces variables globales dans une classe "private static" du projet.

    Voilou

  5. #5
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 23
    Par défaut
    Alors,
    juste après avoir créé ma form fille (nouveau), je déclare la MDI comme étant son parent:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    frmNouveau nouveau = new frmNouveau();
                nouveau.MdiParent = this;
    Et dans ma form nouveau il me trouve bien le nom de ma MDI mais malheureusement mes attributs publiques de la MDI restent invisible depuis la form...

    Par contre merci pour l'astuce de la classe statique , ca marche bien et c'est pratique, je pense que c'est la solution que je vais utiliser.

  6. #6
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 23
    Par défaut
    Euh milles excuses je me suis trompé: dans la form fille il ne trouvait pas le nom de ma mdi ma mdi est anonyme en fait...

    Par contre j'ai essayé quelquechose et c'est vraiment étrange:

    au moment de créer ma form fille dans ma mdi je passe en paramètre du contructeur "this".
    dans ma form fille je fait une comparaison entre la référence de la mdi que j'ai obtenu en paramètre du constructeur et MdiParent : true
    => c'est donc bien le même objet

    mais a partir de la référence que j'ai passé en paramètre je suis capable d'accéder aux attributs publics de ma MDI et pas a partir de MdiParent...

    ... je pige rien

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 31/10/2009, 15h03
  2. Charger une image depuis les ressources projets
    Par Flackou dans le forum DirectX
    Réponses: 2
    Dernier message: 04/06/2007, 15h34
  3. Accéder à une méthode depuis un form
    Par the java lover dans le forum Windows Forms
    Réponses: 8
    Dernier message: 06/03/2007, 22h36
  4. [AS2] Atteindre attribut d'une classe depuis une fonction interne a la classe
    Par Demco dans le forum ActionScript 1 & ActionScript 2
    Réponses: 6
    Dernier message: 18/04/2006, 22h03
  5. Réponses: 7
    Dernier message: 08/01/2005, 14h24

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