2010-11-11 4 views
0

J'ai une fenêtre principale "parent" contient un bouton et une zone de texte. J'ai une autre fenêtre "enfant" qui se déclenche lorsque j'entre un texte dans la zone de texte et clique sur le bouton dans la fenêtre principale. maintenant la fenêtre enfant contient une autre zone de texte et un bouton. ce que je dois faire est d'entrer du texte dans la boîte de texte sur la fenêtre enfant puis quand j'appuie sur le bouton sur la fenêtre enfant la zone de texte sur la fenêtre parent devrait être mise à jour avec le texte que j'ai entré de la fenêtre enfant. voici l'exemple :accéder au contrôle dans la fenêtre parent de la fenêtre enfant dans C#

Form1.cs

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Text; 
using System.Windows.Forms; 

namespace childform 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      Form2 tempDialog = new Form2(this); 
      tempDialog.ShowDialog(); 
     } 

     public void getText(string text) 
     { 
      textbox1.Text = text; 
     } 

    } 
} 

Form2.cs

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Text; 
using System.Windows.Forms; 

namespace childform 
{ 
    public partial class Form2 : Form 
    { 
     private Form1 m_parent; 

     public Form2(Form1 frm1) 
     { 
      InitializeComponent(); 
      m_parent = frm1; 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      m_parent.getText(textbox1.text); 
     } 
    } 
} 

toute idée comment faire cela?

+0

form2.field.text? –

+0

duplication possible de [Comment accéder et modifier la valeur du contrôle de fenêtre parent de la fenêtre enfant en C#] (http://stackoverflow.com/questions/4160396/how-to-access-and-change-value-of-parent- window-control-from-enfant-window-in-cs) –

Répondre

0

1) Form2 (L'enfant un): Ajouter une propriété pour obtenir le texte écrit dans la zone de texte:

Public string TheText 
{ 
    get { return textbox1.Text; } 
} 

Et régler le bouton DialogResult propriété pour Ok de savoir que la presse utilisateur Ok quand il ferme le formulaire, pas le bouton de fermeture.

2) Dans Form1 (le parent): Vérifiez si l'utilisateur a appuyé sur le bouton Ok, ajoutez prendre la valeur de la propriété theText à Form2.

private void button1_Click(object sender, EventArgs e) 
{ 
    Form2 tempDialog = new Form2(); 
    if (tempDialog.ShowDialog() == DialogResult.Ok) 
     textbox1.Text = tempDialog.TheText; 
} 

Bonne chance!

Questions connexes