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 :

Appel d'une fonctions par plusieurs Form


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Points : 80
    Points
    80
    Par défaut Appel d'une fonctions par plusieurs Form
    Bonsoir,

    J'ai une autre question, comment faire pour ne pas répéter le code d'une même fonction que j'utilise dans toutes mes Forms, sachant que mon projet contient plus que 2 Forms, et dans chacune je doit retaper le code qui est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    protected override void OnPaint(PaintEventArgs e)
            {
     
                Rectangle rect3 = new Rectangle(0, 0, this.ClientSize.Width, this.ClientSize.Height);
     
     
                LinearGradientBrush lgb3 = new LinearGradientBrush(rect3, Color.Lavender, Color.RoyalBlue, 45.0f);
     
                Graphics dc = e.Graphics;
     
                dc.FillRectangle(lgb3, rect3);
            }
    afin d'avoir la même couleur dégrader d'arriére plan pour toutes mes Forms, comment j'appel cette fonction sans la réécrire à chaque fois que je créer une nouvelle Form.

    Merci infiniment,

  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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Tu peux définir ça dans une Form dont hériteront toutes les autres.

    Ou alors, pour plus de souplesse, tu crées une classe FormPainter (par exemple) qui se charge du dessin et que tu appelles à partir de toutes tes form.

    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
    public class FormPainter
    {
        public void PaintForm(Form f, PaintEventArgs e)
        {
                Rectangle rect3 = new Rectangle(0, 0, f.ClientSize.Width, f.ClientSize.Height); 
                LinearGradientBrush lgb3 = new LinearGradientBrush(rect3, Color.Lavender, Color.RoyalBlue, 45.0f);
                e.Graphics.FillRectangle(lgb3, rect3);
        }
    }
     
    ...
     
    private FormPainter painter = new FormPainter();
    protected override void OnPaint(PaintEventArgs e)
    {
        painter.PaintForm(this, e);
    }
    Tu peux aussi combiner les 2 techniques... tu fais une classe CustomPaintForm, héritant de Form, qui a une propriété de type FormPainter, et qui override OnPaint en utilisant le FormPainter. Comme ça tu peux définir différents FormPainter, que tu peux assigner à telle ou telle Form (il faut dans ce cas définir la méthode PaintForm comme virtuelle).

  3. #3
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    Merci beaucoup,

  4. #4
    Membre habitué Avatar de bobmidou
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 121
    Points : 149
    Points
    149
    Par défaut
    Salut

    Tu peux créer une classe static
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    static class Class1
        {
            public static void degrade(System.Windows.Forms.Form frm ,System.Windows.Forms.PaintEventArgs e)
            {
                Rectangle rect3 = new Rectangle(0, 0, frm.ClientSize.Width, frm.ClientSize.Height);
     
                LinearGradientBrush lgb3 = new LinearGradientBrush(rect3, Color.Lavender, Color.RoyalBlue, 45.0f);
     
                Graphics dc = e.Graphics;
     
                dc.FillRectangle(lgb3, rect3);
            }
        }
    et dans tes form tu mes pour Paint
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    private void Form1_Paint(object sender, PaintEventArgs e)
            {
                Class1.degrade(this, e);
            }
    Mais il doit sûrement y avoir d'autres solutions

    Bonne chance
    --<< Il n y a que les clous qui ne plantent pas >>---

  5. #5
    Membre habitué Avatar de bobmidou
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 121
    Points : 149
    Points
    149
    Par défaut
    oups !

    J'avais même pas encore fini d'écrire et hop c'est déjà résolu
    tant mieux
    --<< Il n y a que les clous qui ne plantent pas >>---

  6. #6
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    Merci BobMidou

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

Discussions similaires

  1. Appel d'une fonction par une string depuis un plugin
    Par cahnory dans le forum jQuery
    Réponses: 1
    Dernier message: 04/06/2010, 21h11
  2. Appel d'une fonction par une autre
    Par maparè dans le forum Langage
    Réponses: 3
    Dernier message: 01/03/2010, 15h57
  3. Appel d'une fonction avec plusieurs paramètres
    Par kazarn dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 06/06/2009, 18h55
  4. Appel d'une fonction avec plusieurs variables
    Par midoparis dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 13/05/2008, 11h53
  5. appel d'une fonction par variable
    Par jgarin dans le forum VBA Access
    Réponses: 2
    Dernier message: 02/01/2008, 12h56

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