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

Visual Studio Discussion :

[VS 2008 - C#]Classe partial et composant graphique


Sujet :

Visual Studio

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 931
    Par défaut [VS 2008 - C#]Classe partial et composant graphique
    Bonsoir à tous.

    Mon projet commençant a devenir relativement conséquent, j'ai décidé de faire d'autre partial classe.

    Par défaut ma Form de mon IHM était en partial classe. J'ai fait plusieurs autre classe que j'ai nommé de façon différente pour bien mis retrouver. Puis j'ai modifié le code de ces nouvelles classes ainsi crée par un copier coller du début de ma classe Form crée en 1er. Ainsi elle porte tous le même début:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    using System;
    using System.IO;
    using System.Collections.Generic;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
     
    namespace IHMreleve
    {
        public partial class IMHReleve : Form
        {

    Cela marche très bien et j'ai tout mes fichiers bien reconnu, ainsi que mes composants graphique. Mais j'ai 2 problèmes.
    je pense qu'il sont lier.

    Si je double clique sur l'une des classes nouvellement crée cela m'ouvre une nouvelle Form vide et non le code comme si c'était un fichier de classe seul.
    je précise que lors de la création de m'a nouvelle page j'ai crée une classe et non un formulaire bien sur.

    Autre souci qui me parait bizarre car cela me le fait pas à chaque fois. Au moment du lancement du mode debug, il me crée toute une liste de méthode associé au objet graphique de m'a form

    par exemple: ... bouton1_Click(....)

    J'ai pas compté mais à vu de nez il me recrée toutes les méthodes que j'utilise mais vide, sans aucun code.

    Du coup blocage à la génération vu qu'il y a plein de méthode en double.

    J'ai juste à effacer puis relancer et cela marche. parfois j'en fait 4 ou 5 sans souci puis rebelote il me recrée la totalité.

    Je pense que je doit pas utiliser les fonctions classe partial correctement, je doute que se soit un bug de Visual quand même.

    c'est la 1ere fois que j'utilise les classes partial.

    merci de votre aide

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Ne précise pas la classe de base (": Form") à chaque fois, fais le seulement dans le fichier "principal" (Form1.cs par exemple). Ca devrait régler le problème du designer, et sans doute aussi la suite de ton problème...

    Petit conseil : pour y voir plus clair dans ton projet, tu peux définir les nouveaux fichiers de définition partielle de la classe comme étant des "enfants" du fichier principal, comme je l'ai expliqué ici :
    http://tomlev.wordpress.com/2009/03/...ent-dun-autre/

    Pour finir, une dernière remarque : si ton fichier a besoin d'être découpé en plusieurs parties, c'est probablement qu'il est trop gros, et donc qu'il fait trop de choses... Il vaudrait mieux répartir les responsabilités entre plusieurs classes, et sortir du code de la form tout ce qui n'est pas strictement lié à l'interface graphique (code métier, accès à la base de données, etc)


    Citation Envoyé par megamario Voir le message
    je doute que se soit un bug de Visual quand même.
    N'en doute pas trop, c'est beaucoup plus courant qu'on pourrait le croire

  3. #3
    Membre éprouvé Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 931
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Ne précise pas la classe de base (": Form") à chaque fois, fais le seulement dans le fichier "principal" (Form1.cs par exemple). Ca devrait régler le problème du designer, et sans doute aussi la suite de ton problème...

    Petit conseil : pour y voir plus clair dans ton projet, tu peux définir les nouveaux fichiers de définition partielle de la classe comme étant des "enfants" du fichier principal, comme je l'ai expliqué ici :
    http://tomlev.wordpress.com/2009/03/...ent-dun-autre/

    Pour finir, une dernière remarque : si ton fichier a besoin d'être découpé en plusieurs parties, c'est probablement qu'il est trop gros, et donc qu'il fait trop de choses... Il vaudrait mieux répartir les responsabilités entre plusieurs classes, et sortir du code de la form tout ce qui n'est pas strictement lié à l'interface graphique (code métier, accès à la base de données, etc)

    Merci pour ces précieux conseil. En ce qui concerne m'on programme j'ai effectivement plusieurs classe pour gérer différente partie mais mon IHM est composé d'un tabcontrol de 9 onglets, du coup pour gérer juste la partie affichage cela commence a faire long.

    Les classe partial m'intéressait donc. je vais regarder aussi les classes enfants de votre document se serait plus propre.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par megamario Voir le message
    mon IHM est composé d'un tabcontrol de 9 onglets, du coup pour gérer juste la partie affichage cela commence a faire long.
    Tu peux mettre le contenu de chaque onglet dans un UserControl, et mettre les UserControls dans les onglets. Ca allègera pas mal le code de la form, et ça permettra de réutiliser certains UserControls si besoin

  5. #5
    Membre éprouvé Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 931
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Tu peux mettre le contenu de chaque onglet dans un UserControl, et mettre les UserControls dans les onglets. Ca allègera pas mal le code de la form, et ça permettra de réutiliser certains UserControls si besoin
    merci, pourriez vous m'expliquer, ou me rediriger sur un tuto expliquant la façon de faire.

    Si non j'ai enlevé les héritages Form de toutes les classes partial autre que ma Form d'origine mais le résultat est exactement le même.

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par megamario Voir le message
    merci, pourriez vous m'expliquer, ou me rediriger sur un tuto expliquant la façon de faire.
    Ben il suffit de faire "Nouveau contrôle utilisateur" dans le menu projet, et de mettre les contrôles que tu veux dedans. Ensuite tu recompiles, le UserControl que tu as créé devrait apparaitre dans la boite à outils, et tu peux le glisser sur ta form comme un contrôle normal

    Citation Envoyé par megamario Voir le message
    Si non j'ai enlevé les héritages Form de toutes les classes partial autre que ma Form d'origine mais le résultat est exactement le même.
    Tu arriverais à reproduire le problème dans un nouveau projet simple (avec juste une fenêtre divisée en plusieurs fichiers de classe partielle) ? Si oui, envoie le moi, je jetterai un coup d'oeil

Discussions similaires

  1. [CR 2008] Problème composant graphique CR 2008
    Par Louzemac dans le forum Débuter
    Réponses: 1
    Dernier message: 30/11/2011, 20h13
  2. [Best Practices] Classe Modèle de composant graphique
    Par Kihmé Xs dans le forum Général Java
    Réponses: 0
    Dernier message: 04/08/2011, 13h40
  3. Lier des composants graphique aux attributs d'une classe
    Par galeo27 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 17/11/2009, 17h52
  4. Composant graphique multiple (ou dérivé d'un TFrame)
    Par Jean Bovet dans le forum C++Builder
    Réponses: 5
    Dernier message: 30/04/2007, 18h57
  5. [Composant Graphique] List Box "synchronisés"
    Par Raideman dans le forum C++Builder
    Réponses: 9
    Dernier message: 03/11/2006, 19h50

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