none
Récupération de la valeur TEXT d'un TextBox RRS feed

  • Question

  • Bonjour,

    Bon voila j'ai un gros souci,

    j'arrive pas à récupérer la valeur TEXT d'une texteBox qui se trouve dans un Form2 pour pouvoir l'utiliser dans Form1.

    Pour vous mettre dans le contexte, j'ai:

    1-Form2 qui souvre (Comme une MessageBox et qui me demande le nombre de sommet d'un graphe ) le tout quand je clique sur un bouton qui est sur Form1;

    2- Je récupere le nombre de sommet pour pouvoire l'utiliser sur Form1 pour dessiner les sommets;

    Merci bcp;

     

     

     

    dimanche 28 mars 2010 18:06

Réponses

  • Bonjour,

    tu as du essayé de mettre à jour la valeur alors que la fenêtre n'existait plus.

    Pour ce que tu veux réaliser :

    - sur form1 tu peux déclarer une propriété qui mettra à jour la textbox par :

    public string  MyValue
    {
      set 
      { 
        this.textBox1.Text = value;
      }
    }
    

    - sur form2 tu mets à jour cette propriété sur l'évènement ValueChanged:

    private void numericUpDown1_ValueChanged(object sender, EventArgs e)
    {
      Form1 form1 = this.Owner as Form1;
      if (form1 != null)
      {
        form1.MyValue = this.numericUpDown1.Value.ToString();
      }
    }
    
    Cordialement

     

     

    • Proposé comme réponse Alex Petrescu lundi 29 mars 2010 14:04
    • Proposé comme réponse Alex Petrescu lundi 29 mars 2010 14:04
    • Marqué comme réponse MOHAMED183 lundi 29 mars 2010 18:41
    lundi 29 mars 2010 12:30
    Modérateur
  • Dans le showDialog, passe bien la référence de la fenêtre (this) sinon le owner est null :

    form2.ShowDialog(this);

    • Marqué comme réponse MOHAMED183 lundi 29 mars 2010 18:39
    lundi 29 mars 2010 17:48
    Modérateur
  • Bonsoir Nikho, j'ai une bonne nouvelle sa a marché OUéééééé!!!

    j'ai ajouter les "this", et il falait aussi choisir l'événement Form Closed à la place de numericUpDown_ChangeValue 

    ie: private void Form2_FormClosed(object sender, FormClosedEventArgs e)
    Merci beaucoup d'avoire apporter de l'eau à mon moulin.

    • Marqué comme réponse MOHAMED183 lundi 29 mars 2010 18:39
    • Marqué comme réponse MOHAMED183 lundi 29 mars 2010 18:39
    lundi 29 mars 2010 18:29

Toutes les réponses

  • Bonjour,

    tu peux déclarer une propriété publique sur Form2 :

    public string MaValeur
    {
        get { return this.textBox1.Text; }
    }

    et ensuite l''utiliser depuis form1 :

    String maValeur = null;
    
    using (Form2 form2 = new Form2())
    {
      form2.ShowDialog(this);
    
      maValeur = form2.MaValeur;
    }
    

    Cordialement

    lundi 29 mars 2010 08:31
    Modérateur
  • Bonjour,
    Merci, d'avoir répondu à ma question Nikho mais sa ne marche pas , il me dit (Reference d'objet  requise pour la propriété).
    Je vais essayer d'etre plus précis que la derniere fois:

    Bon voila ce que je veux réalisé:

    -Un (CountUpDown) se trouve sur un Form2, et une textbox se trouve sur un form1. J'aimerai que lorsque j'augmente ou que je décrémente mon (CountUpDown), je vois aussi la textBox changer de valeur ,
    j'ai essayer (dans le code de Form1) de mettre: 
    (textBox.Text=Form2.CountUpDown.Value)
    mais sa n'a pas voulue marcher.
    Merci bcp

    lundi 29 mars 2010 12:09
  • Bonjour,

    tu as du essayé de mettre à jour la valeur alors que la fenêtre n'existait plus.

    Pour ce que tu veux réaliser :

    - sur form1 tu peux déclarer une propriété qui mettra à jour la textbox par :

    public string  MyValue
    {
      set 
      { 
        this.textBox1.Text = value;
      }
    }
    

    - sur form2 tu mets à jour cette propriété sur l'évènement ValueChanged:

    private void numericUpDown1_ValueChanged(object sender, EventArgs e)
    {
      Form1 form1 = this.Owner as Form1;
      if (form1 != null)
      {
        form1.MyValue = this.numericUpDown1.Value.ToString();
      }
    }
    
    Cordialement

     

     

    • Proposé comme réponse Alex Petrescu lundi 29 mars 2010 14:04
    • Proposé comme réponse Alex Petrescu lundi 29 mars 2010 14:04
    • Marqué comme réponse MOHAMED183 lundi 29 mars 2010 18:41
    lundi 29 mars 2010 12:30
    Modérateur
  • Bonsoir Nikho,

    Le probleme persiste, sauf que cette foi il m'affiche pas une erreur il s'éxécute normalement, mais quand je clique sur OK la texteBox ne prend pas la valeur (elle ne saffiche pas) ...

    Remarque:
    j'ai utiliser ta derniere démarche,
    et j'ai meme essayer avec l'évenement Closing Form (dés que le Form2 se ferme texteBox capture la valeur)...mais je sais pas pourquoi ça ne marche pas.

    Merci ;-)

    lundi 29 mars 2010 16:18
  • Bonsoir,

    Peux tu envoyer un exemple avec ton code qu'on voit ce qui ne fonctionne pas pour toi ?

    Cordialement

    lundi 29 mars 2010 16:57
    Modérateur

  • namespace LE_Projet_THG { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void nouvelleMatriceToolStripMenuItem_Click (object sender, EventArgs e) { Form2 form2 = new Form2(); form2.ShowDialog(); } public string myValue { set { this.TextBox.Text = value; } } private void quitterToolStripMenuItem_Click(object sender, EventArgs e) { Close(); } } }


    namespace LE_Projet_THG
    {
        public partial class Form2 : Form
        {
          
           
            public Form2()
                
            {
                InitializeComponent();
                
                          
            }
    
            private void numericUpDown_ValueChanged(object sender, EventArgs e)
            {
                
                Form1 form1 = this.Owner as Form1;
                if (form1 != null)
                {
                    form1.myValue = this.numericUpDown.Value.ToString();
                }
    
            }
    
    
    
            private void form2_OK_Click(object sender, EventArgs e)
            {
               
                Close();
            }
                  
           
        }
    }

    lundi 29 mars 2010 17:09
  • Dans le showDialog, passe bien la référence de la fenêtre (this) sinon le owner est null :

    form2.ShowDialog(this);

    • Marqué comme réponse MOHAMED183 lundi 29 mars 2010 18:39
    lundi 29 mars 2010 17:48
    Modérateur
  • Bonsoir Nikho, j'ai une bonne nouvelle sa a marché OUéééééé!!!

    j'ai ajouter les "this", et il falait aussi choisir l'événement Form Closed à la place de numericUpDown_ChangeValue 

    ie: private void Form2_FormClosed(object sender, FormClosedEventArgs e)
    Merci beaucoup d'avoire apporter de l'eau à mon moulin.

    • Marqué comme réponse MOHAMED183 lundi 29 mars 2010 18:39
    • Marqué comme réponse MOHAMED183 lundi 29 mars 2010 18:39
    lundi 29 mars 2010 18:29