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 à form1 depuis méthode statique


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 17
    Par défaut Accès à form1 depuis méthode statique
    Bonjour,

    Je débute en c# et je ne parviens pas à trouver la solution pour accéder depuis une méthode statique à un élément non statique.

    Plus précisément je souhaiterais accéder à un objet créé tel que label directement créé par Visual Studio (donc on static) et pour ce faire je dois passer par une instance de classe; le problème c'est que sauf erreur de ma part la classe principale (form1) n'a pas d'instance.

    J'ai réussi à le faire en passant en argument l'instance mais je voudrais trouver une autre solution car dans d'autres cas je ne peux passer d'arguments (threads)

    Merci pour votre aide !

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    La classe form1 a une instance, c'est celle qui est passée à la méthode Application.Run() dans le cas où Form1 est bien ta fenêtre principale.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 17
    Par défaut Ou se touve l'instance ?
    Bonjour et merci pour cette réponse rapide,

    Dans Program.cs je retrouve effectivement un code qui correspond ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Program.cs
    
    Application.Run(new frm_index());
    Cependant il s'agit du même nom que ma classe principale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    frm_index.cs
    
        public partial class frm_index : Form
        {
            public frm_index()
            {
    Et lorsque depuis une méthode statique je tente d'accéder à j'obtiens :

    Erreur 1 Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique
    Cordialement.

  4. #4
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    A mon humble avis, si tu dois accéder à une variable d'instance privée d'une classe à partir d'une méthode static, je pense qu'il y a un problème dans l'architecture de ton application...

    Tu devrais essayer de revoir la logique interne de ton application.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 17
    Par défaut
    Je veux juste depuis une méthode statique accéder aux objets créés par visual studio sur mon frm_index.

    Pour l'instant j'ai 4 idées :

    • Passer en argument l'instance d'un objet à la méthode statique
    • Passer un objet en argument à ma méthode statique
    • Passer le frm_index en static
    • Créer moi même une instance de frm_index


    C'est certain que quelque chose dans mon architecture n'est pas correct et c'est la raison de mon erreur & ma question.

    Merci encore.

  6. #6
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    La chose qui ne me parait pas cohérente est de vouloir accéder à ce label à partir d'une méthode statique. Ce qu'il faut bien comprendre, c'est que le mot clé 'static' définit une méthode ou une propriété qui est partagée par toutes les instances d'une classe; au contraire d'une variable d'instance qui elle est spécifique à chaque instance.
    Pourquoi faire une méthode static si c'est c'est pour la faire accéder à des membres d'instance ?
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

Discussions similaires

  1. [Objet] Accès à propriété privée depuis méthode statique
    Par Invité dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 20/09/2011, 13h39
  2. [POO] Méthodes statiques d'accès aux données
    Par AsQuel dans le forum Langage
    Réponses: 2
    Dernier message: 27/08/2010, 22h23
  3. Réponses: 1
    Dernier message: 31/05/2010, 14h38
  4. Réponses: 1
    Dernier message: 25/09/2008, 20h33
  5. Réponses: 2
    Dernier message: 26/02/2008, 18h28

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