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

C# Discussion :

Comment faire pour avoir un objet accessible dans tous les formulaires?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Par défaut Comment faire pour avoir un objet accessible dans tous les formulaires?
    bonjour,
    voila, j'ai un problème qui commence à devenir vraiment gênant !
    j'ai commencé un projet en programmation orienté objet en c#, et j'aimerais utiliser un objet sur plusieurs feuilles.
    malheureusement, je ne sais pas comment rendre un objet visible dans toute l'application.

    voici l'objet que j'aimerais instancier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private void PagePrincipale_Load(object sender, EventArgs e)
    {
                ClClasseEleve uneClasse;
                uneClasse = new ClClasseEleve("1", "2SIN");
    }
    et j'aimerais l'utiliser dans d'autres feuilles.
    on m'a parlé des thread, mais j'ai rien compris u_u

    pourriez-vous me dire quelle méthode je pourrais utiliser s.v.p ?

  2. #2
    Membre expérimenté
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Billets dans le blog
    4
    Par défaut
    tu veux ré-instancier ton objet? ou utiliser le même à chaque page?
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Mon Tutoriel pour apprendre les Agregations
    Consultez mon Blog SQL destiné aux débutants

    Pensez à FAQ SQL Server Ainsi qu'aux Cours et Tuto SQL Server

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Par défaut
    j'aimerais utiliser le même dans chaque page

  4. #4
    Membre expérimenté
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Billets dans le blog
    4
    Par défaut
    je sais pas si c'est possible de le faire, essaye de voir du côté de global.asax peut-être que tu peux implémenter un objet (mais je suis pas sur je ne m'en sers pas) ou alors, il te faut faire ton objet en static, mais, si ton appli est utilisé 2 fois les valeurs vont finir par se chevaucher et te donner des résultats inatendus.

    Cordialement.
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Mon Tutoriel pour apprendre les Agregations
    Consultez mon Blog SQL destiné aux débutants

    Pensez à FAQ SQL Server Ainsi qu'aux Cours et Tuto SQL Server

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Par défaut
    l'appli ne sera utilisée que par un seul poste, alors il n'y a pas de problème pour ça.
    j'ai essayé de mettre mon objet en static mais ça n'a pas marché, en même temps j'ai du mal, je suis tout nouveau en c# ^^

    pourrais-tu me montrer comment on met un objet en static stp ? je pourrais ainsi voir ou j'ai fais une erreur

    merci pour ta réponse

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Par défaut
    Bonjour,

    toujours heureu de voir des apprentits

    avans de continuer, tu utilise bien C# dans une interface WinForm/WPF??

    car sous ASP.NET c'est une autre histoire


    donc grossomodo il faut essayer de visualiser ton programme comme un arbre geant dans la racine et le projet d'execution ensuite il peut decouler de cette racine des fenetre, des librairie, des classes et autre

    PS: pour mieu me comprendre(j'ai parfois du mal ) hesite pas a fair un petit dessin

    nous voulons qu'un objet soit accessible par toute les fenetres, il faut donc que notre objet se place très près de la racine

    niveau 1: racine
    niveau x: objet
    niveau > x : toute les fenetre
    il est donc obligatoire que notre objet ne soit pas contenu par nos fenetre ainsi ton code ne fonctionneras pas correctement.


    une variable ne peut etre stocker que dans une classe, il va donc nous falloir une nouvelle classe(que nous pourrons appeler "VariableGenerale") qui seras(par default, tu n'as rien a fair) reliè a la racine meme.

    le 2ème point est que tu ne veut qu'une seule instance, il faudras donc utiliser "static"

    Resultat:
    Tu doit ajouter une nouvelle classe a ton projet

    Celle ci contiendras le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public static class ValeurGeneral
    {
       public static ClClasseEleve maClasse;
    }

    si jamais ces notions(static, structure du code) te sont fortement etrangere je te conseil de fair un tour a la section "tuto"

    http://dotnet.developpez.com/cours/?page=csharp


    EDIT: quand a sont utilisation, de n'importe ou tu tape "ValeurGeneral" puis tu met un point et la hop acces direct a ta variable

    pas besoin d'instancier la classe ValeurGeneral

    si tu a besoin de fair des control d'instance sur ta variable(fair le "new" une seul fois je te renvoy au cour sur les singleton)

    bon courage, C# est un puissant languague, ici tu auras de l'aider reguliere et serieuse, tu ne regretteras rien

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/11/2013, 19h36
  2. Réponses: 3
    Dernier message: 11/06/2012, 17h47
  3. comment faire pour avoir java-web dans mon netbeans
    Par titeufdev dans le forum NetBeans
    Réponses: 1
    Dernier message: 15/06/2011, 16h01
  4. Réponses: 1
    Dernier message: 25/06/2010, 07h38
  5. Réponses: 1
    Dernier message: 23/07/2007, 11h00

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