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

C# Discussion :

Faire référence au formulaire dans le programme. [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 172
    Par défaut Faire référence au formulaire dans le programme.
    Bonjour,

    Je me suis fais le petit programme suivant pour essayer de comprendre le fonctionnement des événements :

    Code c# : 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
    51
    52
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
     
    namespace even
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
     
            private void b1_click(object sender, EventArgs e)
            {
                this.BackColor = System.Drawing.Color.Red;
            }
     
            private void b2_click(object sender, EventArgs e)
            {
                this.BackColor = System.Drawing.Color.Blue;
            }
     
     
            private void Form1_Load(object sender, EventArgs e)
            {
     
     
                Button b1 = new Button();
                b1.Location = new Point(25, 25);
                b1.Size = new System.Drawing.Size(75, 30);
                b1.Text = "Rouge";
                b1.Click += new EventHandler(b1_click);
     
                Button b2 = new Button();
                b2.Location = new Point(100, 25);
                b2.Size = new System.Drawing.Size(75, 30);
                b2.Text = "Bleu";
                b2.Click += new EventHandler(b2_click);
     
                this.Text = "Even";
                this.Controls.Add(b1);
                this.Controls.Add(b2);
     
            }
        }
    }

    C'est très simple, il y a un formulaire, dans lequel je crée 2 boutons avec 2 événements liés. Quand je clique sur le bouton "rouge", le formulaire devient rouge, quand je clique sur le bouton "bleu", le formulaire devient... bleu vous êtes trop fort.

    Mon problème c'est qu'en fait le formulaire ET les boutons deviennent rouge et bleu. Et je ne comprend pas pourquoi. Quand j'utilise "this" dans l'événement b1_click, je pensai faire référence au formulaire, et donc modifier que la couleur du formulaire.

    Alors pourquoi le bouton change aussi de couleur ?

    Merci.

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 269
    Par défaut
    Bonjour,

    La réponse est ici
    The BackColor property is an ambient property. An ambient property is a control property that, if not set, is retrieved from the parent control. For example, a Button will have the same BackColor as its parent Form by default. For more information about ambient properties, see the AmbientProperties class or the Control class overview.
    Vu que tu ne spécifies pas de couleur de fond quand tu crées tes boutons, ils utilisent celle du parent, donc celle du formulaire.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 172
    Par défaut
    Ok super j'ai bien compris. Merci.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 172
    Par défaut
    Une autre question au passage, j'ai rajouter un textbox dans mon formulaire et je voudrai le remplir en cliquant sur un des boutons créés :

    Code c# : 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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace even
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void b1_click(object sender, EventArgs e)
            {
                this.BackColor = System.Drawing.Color.Red;
                TB1.text = "rouge" ; //Ne fonctionne pas
    
                
            }
    
            private void b2_click(object sender, EventArgs e)
            {
                this.BackColor = System.Drawing.Color.Blue;
     TB1.text = "bleu" ; //Ne fonctionne pas
    
            }
    
    
            private void Form1_Load(object sender, EventArgs e)
            {
                Button b1 = new Button();
                b1.Location = new Point(25, 25);
                b1.Size = new System.Drawing.Size(75, 30);
                b1.Text = "Rouge";
                b1.BackColor = System.Drawing.Color.AntiqueWhite;
                b1.Click += new EventHandler(b1_click);
    
                Button b2 = new Button();
                b2.Location = new Point(100, 25);
                b2.Size = new System.Drawing.Size(75, 30);
                b2.Text = "Bleu";
                b2.BackColor = System.Drawing.Color.AntiqueWhite;
    
                TextBox TB1= new TextBox();
                TB1.Location = new Point(150, 100);
                TB1.Size = new System.Drawing.Size(100, 30);
    
    
                b2.Click += new EventHandler(b2_click);
    
                this.Text = "Even";
                this.Controls.Add(b1);
                this.Controls.Add(b2);
                this.Controls.Add(lab1);
    
    
            }
        }
    }

    Mais je ne comprend pas comment faire référence à TB1 dans les événements b1_click et b2_click.

    Pouvez-vous m'expliquer ?

    Merci.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/11/2010, 13h55
  2. Choix de bonnes références pour débuter dans la programmation d'OS
    Par nschoe dans le forum Programmation d'OS
    Réponses: 8
    Dernier message: 01/04/2009, 15h42
  3. [EJB] Comment faire référence à un ejb dans un client distant ?
    Par tofke dans le forum Java EE
    Réponses: 5
    Dernier message: 25/01/2008, 09h44
  4. Aide sur mes références au formulaire dans ma requête
    Par juliojc13 dans le forum VBA Access
    Réponses: 10
    Dernier message: 02/06/2007, 20h13
  5. Réponses: 2
    Dernier message: 02/12/2006, 21h58

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