Partage
  • Partager sur Facebook
  • Partager sur Twitter

Changer la couleur de fond d'une form

Anonyme
    26 octobre 2019 à 14:33:32

    Bonjour !
    J'aimerai savoir comment changer la couleur de fond de ma form à partir d'une fonction.
    Par exemple : 
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace To_Do_app
    {
        public partial class Main : Form
        {
    
    
    
            public Main()
            {
                InitializeComponent();
                setCouleur();
            }
    
    
    
            public void setCouleur()
            {
    
                this.BackColor = System.Drawing.Color.White;
    
            }
        }
    }
    Si j'appelle la fonction setCouleur(), ma form va changer de couleur mais si je l'appelle d'une autre fenêtre à partir d'un bouton qui est dans cette autre fenêtre, que je fais quelque chose comme ceci :
    Main app = new Main();
    app.setCouleur(couleur); //J'ai pas mon code sous la main mais grossomodo c'est ça
    La couleur ne changera pas :/
    Pouviez-vous m'aider ? 
    Merci

    -
    Edité par Anonyme 27 octobre 2019 à 8:25:14

    • Partager sur Facebook
    • Partager sur Twitter
      26 octobre 2019 à 20:23:07

      Yop !

      Tu est sur que la propriete est back color et non pas background color ou autre ?

      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        27 octobre 2019 à 8:22:58

        NextrieSH a écrit:

        Yop !

        Tu est sur que la propriete est back color et non pas background color ou autre ?


        Oui :/

        Mais j'ai mal formuler ma question car ce code marche :/

        Je vais celle-ci

        • Partager sur Facebook
        • Partager sur Twitter
          28 octobre 2019 à 13:51:01

          TecZone a écrit:

          Si j'appelle la fonction setCouleur(), ma form va changer de couleur mais si je l'appelle d'une autre fenêtre à partir d'un bouton qui est dans cette autre fenêtre, que je fais quelque chose comme ceci :

          Main app = new Main();
          app.setCouleur(couleur); //J'ai pas mon code sous la main mais grossomodo c'est ça

          La couleur ne changera pas :/

          Pouviez-vous m'aider ? 
          Merci

          Je devine : Vous utilisez ShowDialog() avant votre appel à app.SetCouleur. ShowDialog étant "Thread Blocking", votre app.SetCouleur ne s'effectue pas avant... la destruction de votre Form.

          Utilisez Show() à la place, ou modifiez votre approche du problème. Par exemple :

          namespace WindowsFormsApp2
          {
              public partial class Form1 : Form
              {
                  public Form1()
                  {
                      InitializeComponent();
                  }
          
                  private void button1_Click(object sender, EventArgs e)
                  {
                      Form2 f = new Form2();
                      f.ehClick += new Form2.ChildClicked(Colour);
                      f.ShowDialog();
                  }
          
                  private void Colour(EventArgs e)
                  {
                      this.BackColor = Color.Aquamarine;
                  }
              }
          }
          namespace WindowsFormsApp2
          {
              public partial class Form2 : Form
              {
                  public Form2()
                  {
                      InitializeComponent();
                  }
          
                  public delegate void ChildClicked(EventArgs e);
                  public event ChildClicked ehClick;
          
                  private void button1_Click(object sender, EventArgs e)
                  {
                      if (ehClick is null)
                          return;
          
                      ehClick(e);
                  }
              }
          }


          (Le paramètre EventArgs est inutile, je l'ai ajouté pour vous montrer qu'il est possible de balader des paramètres)

          ----------------------------------------------------------------------------------------------------------

          Si cela ne répond pas à votre problématique, il faudrait alors nous fournir le code complet afin de cerner plus exactement la façon dont vous procédez.



          -
          Edité par LilyKianii 28 octobre 2019 à 14:01:33

          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            28 octobre 2019 à 17:09:01

            LilyKianii a écrit:

            TecZone a écrit:

            Si j'appelle la fonction setCouleur(), ma form va changer de couleur mais si je l'appelle d'une autre fenêtre à partir d'un bouton qui est dans cette autre fenêtre, que je fais quelque chose comme ceci :

            Main app = new Main();
            app.setCouleur(couleur); //J'ai pas mon code sous la main mais grossomodo c'est ça

            La couleur ne changera pas :/

            Pouviez-vous m'aider ? 
            Merci

            Je devine : Vous utilisez ShowDialog() avant votre appel à app.SetCouleur. ShowDialog étant "Thread Blocking", votre app.SetCouleur ne s'effectue pas avant... la destruction de votre Form.

            Utilisez Show() à la place, ou modifiez votre approche du problème. Par exemple :

            namespace WindowsFormsApp2
            {
                public partial class Form1 : Form
                {
                    public Form1()
                    {
                        InitializeComponent();
                    }
            
                    private void button1_Click(object sender, EventArgs e)
                    {
                        Form2 f = new Form2();
                        f.ehClick += new Form2.ChildClicked(Colour);
                        f.ShowDialog();
                    }
            
                    private void Colour(EventArgs e)
                    {
                        this.BackColor = Color.Aquamarine;
                    }
                }
            }
            namespace WindowsFormsApp2
            {
                public partial class Form2 : Form
                {
                    public Form2()
                    {
                        InitializeComponent();
                    }
            
                    public delegate void ChildClicked(EventArgs e);
                    public event ChildClicked ehClick;
            
                    private void button1_Click(object sender, EventArgs e)
                    {
                        if (ehClick is null)
                            return;
            
                        ehClick(e);
                    }
                }
            }


            (Le paramètre EventArgs est inutile, je l'ai ajouté pour vous montrer qu'il est possible de balader des paramètres)

            ----------------------------------------------------------------------------------------------------------

            Si cela ne répond pas à votre problématique, il faudrait alors nous fournir le code complet afin de cerner plus exactement la façon dont vous procédez.



            -
            Edité par LilyKianii il y a environ 3 heures


            Exactement ça !

            Merci beaucoup d'avoir pris le temps de répondre

            • Partager sur Facebook
            • Partager sur Twitter

            Changer la couleur de fond d'une form

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown