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

Développement Windows Discussion :

Transformer des Forms en librairie de Form


Sujet :

Développement Windows

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Janvier 2012
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2012
    Messages : 68
    Points : 27
    Points
    27
    Par défaut Transformer des Forms en librairie de Form
    J'ai dernièrement appris à customiser des boutons et autres controls pour me créer une librairie réutilisable dans d'autre projets. Pas de problèmes la dessus.
    J'utilise aussi dans mes projets, différentes fenêtres de saisie comme celle ci-dessous par exemple:

    Nom : Capture.PNG
Affichages : 184
Taille : 189,2 Ko

    Existe-t-il une méthode afin de créer une libraire avec ces forms à la manière des boites de dialogue Windows ?
    J'ai tenter divers tutoriels en faisant hériter ma classe de UserControl, mais quand je la drop de la toolbox sur la fenêtre de mon projet, le PopUp de saisie se dessine.
    J'aimerais que celui-ci se mettent en mode "fantome" comme les boites Windows (voir ci dessous) et qu'il ne s'affiche qu'a ma demande.

    En vous remerciant

    Nom : Capture2.PNG
Affichages : 221
Taille : 73,1 Ko

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    oui mais il n'y a pas spécialement d'utilité
    enfin je pense que tu veux dire que dans la toolbox on peut glisser des trucs qui sont juste des icones en bas (il faut hériter de component pour en créer)
    mais bon si ta form est dans une dll tu peux l'appeler directement depuis le code, comme tu le ferais avec un component
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Janvier 2012
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2012
    Messages : 68
    Points : 27
    Points
    27
    Par défaut
    C'est vrai qu'après avoir chercher un peu partout, ta réponse semble la plus perspicace. Cela apporte peu d'utilité au vu des complications que ça demande.
    Je vais donc les mettre dans la libraire et les créer depuis le code.

    Merci =)

  4. #4
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    Citation Envoyé par petitnul12 Voir le message

    Existe-t-il une méthode afin de créer une libraire avec ces forms à la manière des boites de dialogue Windows ?
    J'aimerais que celui-ci se mettent en mode "fantome" comme les boites Windows (voir ci dessous) et qu'il ne s'affiche qu'a ma demande.

    En vous remerciant
    Un custom form dans une librairie peut être affiché simplement en mode Design comme form "hérité" pour être utilisé
    Point intéressant :contrairement à un usercontrol ou un custom control d'autres controls peuvent etre ajoutés au form "hérité" en mode Design

    Par contre les controls "originaux" posés sur sa surface sont verrouillés
    Pour afficher un form de la librairie (qui doit être référencée dans un projet user)
    projet user ->ajouter un nouvel element
    dans la boite de dialogue qui s'affiche -> Modeles ->Winforms->Formulaire Hérité
    choisie CutomForm(voir exemple ci-après).


    Dans l'exemple du projet librairie ci-joint il y un Form désigné par "customform" dote d'une prop IsFantome de type bool qu'il suffit de mettre à vrai en mode Design[ pour le voir disparaitre comme Fantomas.
    1/ code behind .cs du projet librairie:
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
     
    namespace ControlLibForms
    {
        public partial class CutomForm : Form
        {
            private Color  defaultBackolor ;
            private Color fantomColor = Color.LightGray;
     
            private bool  _isFantome;
            public bool IsFantome
            {
                get { return _isFantome; }
                set 
                { 
                    _isFantome = value; 
                  if ( _isFantome)
                   {
                        this.BackColor = fantomColor;
                        this.ControlBox = false;
                        this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
                        foreach (Control item in Controls)
    	                {
    		                item.Visible = false ;
    	                } 
                    }
                else
                   {
                        this.BackColor =DefaultBackColor;
                        this.ControlBox = true;
                        this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable;
                        foreach (Control item in Controls)
    	                {
                            item.Visible = true; 
    	                } 
                    }
     
                }
            }
     
            public CutomForm()
            {
                InitializeComponent();
                this.ControlBox = true;
                this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable;
                defaultBackolor = this.BackColor;
     
            }
        }
    }
    code behind.cs du form user avec le form hérité ou Form2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    public partial class Form2 : ControlLibForms.CutomForm
        {
            public Form2()
            {
                InitializeComponent();
            }
     
            private void button2_Click(object sender, EventArgs e)
            {
     
            }
        }
    bon code...

  5. #5
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Citation Envoyé par MABROUKI Voir le message
    Point intéressant :contrairement à un usercontrol ou un custom control d'autres controls peuvent etre ajoutés au form "hérité" en mode Design
    techniquement c'est faisable
    j'ai eu fait un usercontrol avec des parties dans lesquelles on pouvait glisser des controles supplémentaires, et d'autres qui pouvaient être modifiées car sélectionnables bien qu'incluses
    car le mode design de winform est codé en .net et dans le framework (pas dans vs), et la plupart des classes sont accessibles, permettant de modifier le comportement d'un control ou d'un uc en mode design
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    techniquement c'est faisable
    j'ai eu fait un usercontrol avec des parties dans lesquelles on pouvait glisser des controles supplémentaires, et d'autres qui pouvaient être modifiées car sélectionnables bien qu'incluses
    car le mode design de winform est codé en .net et dans le framework (pas dans vs), et la plupart des classes sont accessibles, permettant de modifier le comportement d'un control ou d'un uc en mode design
    Tu veux dire la plupart des controls constituants d'un usercontrol peuvent être exposés par le biais de prop PUBLIQUES ,oui mais ca reste un design special TRIBUTAIRE du point de vue de l'AUTEUR du UserControl.
    Le point de vue de Microsoft donc de VS est l'encapsulation des des controls constituants .
    Ce qui fait qu'un usercontrol ou un form est un composant prêt à l'emploi.
    Le seul moyen de le modifier c'est l’héritage(comme dans l'exemple du Form) ce qui permet à son AUTEUR de n'autoriser que des modifications mineures et l'ajout d'autres controls constituants dans la limite du possible.

  7. #7
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    pas sur d'avoir tout compris
    l'auteur d'un UC fait ce qu'il veut certes
    mais s'il veut que le uc une fois posé fonctionne comme un uc qu'on créé ca reste faisable, qu'il expose ou non des propriétés
    chaque controle composant peut etre vivant à l'utilisation (posé dans vs, genre le déplacer, changer sa taille, le déplacer de coneneur ...) comme il l'était à la création (en création de uc/form dans vs)
    après faut que le code derrière continue de fonctionner
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. Réponses: 0
    Dernier message: 08/04/2009, 18h37
  2. Réponses: 11
    Dernier message: 28/02/2007, 12h18
  3. Idées pour une gestion de droits d'accès a des Forms ?
    Par sfxElrick dans le forum Composants VCL
    Réponses: 17
    Dernier message: 26/01/2005, 16h00
  4. [NetBeans] redimensioner auto des form
    Par Damien69 dans le forum NetBeans
    Réponses: 5
    Dernier message: 27/05/2004, 13h50
  5. [VB.NET]La bonne gestion des forms
    Par Wintermute dans le forum Windows Forms
    Réponses: 11
    Dernier message: 13/01/2004, 16h35

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