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 :

Event et form en deux fichiers


Sujet :

Windows Forms

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Event et form en deux fichiers
    Bonjour,

    J'ai une forme qui contenait trop de méthodes. Je l'ai donc séparé en deux fichiers. Cela fonctionne mais lorsque je fait des modifications (quelles qu'elles soient) dans le designer, Visual studio me rajoute automatiquement dans le fichier d'origine les méthodes lié a des events qui se trouve dans le second fichier.

    Exemple :

    MainExtend.cs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    namespace MonProgramme
    {
        public partial class Main : Form
        {
            private void OkButton_Click(object sender, EventArgs e)
            {
                // Some code here
            }
     
        }
    }
    Main.cs (fichier d'origine)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    namespace MonProgramme
    {
        public partial class Main : Form
        {
            // Visual Studio me fait apparaitre ici les méthodes liés aux event, comme si j'avait double cliqué sur le bouton dans le designer.
            private void OkButton_Click(object sender, EventArgs e) // rajouté automatiquement
            {
            }
        }
    }
    Du coup, j'ai deux fois la même méthode, et ça ne compile plus. Je suis obligé de supprimer manuellement les méthodes rajouté par visual studio à chaque passage dans le designer...

    Existe-t-il un moyen de faire comprendre a VS que les méthodes liés a un event existent déjà ?

    Merci d'avance

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 262
    Points : 230
    Points
    230
    Par défaut
    Bonjour,

    Comme solution, tu peux laisser tes méthodes d'évènement dans le fichier d'origine, et mettre les méthodes qui ne sont pas liées au designer dans ton autre fichier.

    Peut-être que VS veut absolument que les méthodes des évènements soient dans le fichier d'origine...
    En tout cas il ne faut pas trop toucher à ce qui est lié au designer par mon expérience car VS fait des trucs automatiquement...
    Tox

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Le problème c'est que j'ai presque exclusivement des méthodes d’événements.

    Fait étonnant, je viens de remarquer que cela fonctionne sur VS 2012 (malheureusement, je n'ai pour le moment que la version précédente...)
    Edit : ah bah en fait non, même problème

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 55
    Points : 46
    Points
    46
    Par défaut
    Je crois que si tu met le code du designer dans un fichier
    Main.Designer.cs
    et ton code perso dans
    Main.cs
    Il sera plus coopérant...

    Mais je pense aussi que le fichier Mais.Designer.cs doit être une dépendance du Main.cs (dans l'explorateur de solution (treeview) le fichier designer apparaît comme un enfant du fichier principal.)
    Ce point expliquerait pourquoi VS ignore la présence des événements de l'autre fichier (il ne considère pas les deux comme un tout)

    Désolé de ne pas être plus précis/affirmatif.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    En fait Main.designer.cs contient la déclaration et l'initialisation des éléments (bouton and co) mais n'est pas fait pour contenir les méthodes d'event.
    D'ailleurs, vu que c'est un fichier auto généré, j'évite d'y toucher pour ne pas tout casser.

  6. #6
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Bonjour.

    Le designer Visual Studio est loin d'être parfait. j'ai des soucis en C++/CLI, pas de "Partial Class". J'utilise l'héritage et le designer fait n'importe quoi lorsque j'ajoute des éléments + méthodes pour des "Controls".

    J'imagine que le seul moyen de corriger cela, est de le signaler aux développeurs concernés, en espérant qu'ils résolvent le problème.

    Comme toi actuellement, je nettoie manuellement les abérrations du designer.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 55
    Points : 46
    Points
    46
    Par défaut
    Ah ok alors en fait je crois qu'il suffit d'éditer le fichier du projet (projet.csproj) avec un éditeur de texte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <Compile Include="Main.cs">
          <SubType>Form</SubType>
        </Compile>
        <Compile Include="Main.Designer.cs">
          <DependentUpon>Main.cs</DependentUpon>
        </Compile>
        <Compile Include="MainExtend.cs">
          <DependentUpon>Main.cs</DependentUpon>
          <SubType>Form</SubType>
        </Compile>

Discussions similaires

  1. Concaténer deux fichiers Ligne/Ligne avec SH
    Par guiltouf dans le forum Linux
    Réponses: 7
    Dernier message: 22/05/2007, 14h35
  2. [langage] Comparaison de deux fichiers
    Par perlgirl dans le forum Langage
    Réponses: 4
    Dernier message: 04/05/2005, 16h05
  3. [langage] Passage d objet entre deux fichiers
    Par Slippers dans le forum Langage
    Réponses: 2
    Dernier message: 28/04/2005, 14h45
  4. Réponses: 22
    Dernier message: 29/01/2005, 11h29
  5. Réponses: 5
    Dernier message: 09/01/2005, 19h54

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