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 :

Transmettre une donnée à un composant instancié


Sujet :

C#

  1. #1
    Invité
    Invité(e)
    Par défaut Transmettre une donnée à un composant instancié
    Bonjour,

    J'ai une question d'une redoutable simplicité, mais étant débutant, ca me pose problème et remets en question ma santé mentale.

    C'est très simple : j'ai deux composants que j'ai instancié dans une Form vide : une TextBox et un Button. Je voudrais pouvoir modifier le champ de texte de la TextBox quand je clique sur le Button. Or, impossible d'accéder a la propriété Text là où je voudrais. J'ai essayé avec des Delegates/Events, qui servent habituellement à ça, mais la...

    Voila ce que je fais :

    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
    public partial class Form1 : Form
    	{
    		public delegate void ChangeTextDelegate(string str);
    		public event ChangeTextDelegate changeTextEvent;
     
     
    		public Form1()
    		{
    			InitializeComponent();
     
    			TextBox myTextBox = new TextBox();
    			myTextBox.Location = new Point(10, 30);
    			this.Controls.Add(myTextBox);
     
    			Button myButton = new Button();
    			myButton.Location = new Point(10, 60);
    			this.Controls.Add(myButton);
     
    			myButton.Click += new EventHandler(buttonClick);
     
    			changeTextEvent += new ChangeTextDelegate(changeText);
     
    		}
     
    		private void buttonClick(Object sender, EventArgs e)
    		{
    			if (changeTextEvent != null)
    			{
    				changeTextEvent("hello");
    			}
    		}
     
    		private void changeText(string str)
    		{
    			MessageBox.Show(str);
    // TODO : changer le texte de la TextBox !
     
     
    		}
     
    	}

    Le Délégate ne sert ici pas à grand chose... La solution doit être toute simple, mais je sèche. Merci de vos eclaircissements.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Points : 1 521
    Points
    1 521
    Par défaut
    Il faut déclarer les composants comme champs de le la 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
    18
    19
    20
    21
    22
    23
    24
     
    public partial class Form1 : Form
    	{
    		public delegate void ChangeTextDelegate(string str);
    		public event ChangeTextDelegate changeTextEvent;
     
                             protected TextBox myTextBox;
                             protected Button myButton;
     
    		public Form1()
    		{
    			InitializeComponent();
     
    			myTextBox = new TextBox();
    			myTextBox.Location = new Point(10, 30);
    			this.Controls.Add(myTextBox);
     
    			myButton = new Button();
    			myButton.Location = new Point(10, 60);
    			this.Controls.Add(myButton);
     
                             }
     
    	}
    J'ai pas regardé le reste du code. Ensuite chaque méthode de la form peut accèder aux deux composants.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Ah mais oui bien sûr...

    Merci beaucoup !

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/04/2008, 14h28
  2. Transmettre une variable données d'une page à l'autre
    Par bubbledog dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 12/12/2007, 17h23
  3. Transmettre une donnée à une fenêtre parent
    Par ChPr dans le forum Graphisme
    Réponses: 10
    Dernier message: 27/04/2007, 23h30
  4. Réponses: 2
    Dernier message: 16/02/2007, 12h09
  5. [VBA] Transmettre des données d'une feuille à l'autre
    Par Overflow64 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/12/2005, 09h58

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