954,505 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Reutrn String From Child Form

Hi All,

I am having this issue and don't really know a good way to overcome it. I have a main form. With a click of a button another form is created. For the example let's just say it has a simple text box. You type whatever you want in it.

My problem arises is how do I get the string from that child class to the calling class.

private void OpenForm_Click(object sender, EventArgs e)
        {
            this.ChildClass = new TextboxForm();
            this.ChildClass.Show();           
           //Before the class loses scope and gets GC'ed I can call a property of the child class
          
          string strTemp = this.ChildClass.UserString;

        //But the problem is after it shows the form it immediatly assigns the strTemp with null or "" because the user hasn't even had time to type something in the box.

        }


So what I would like to know is a a good solution for when the child form closes it can somehow pipe back information to the parent class. I tried doing some research and a delegate kept popping in my head but through frustration couldn't get them working. So is a delegate a good solution for this or am I completely missing something.

blacklocist
Junior Poster in Training
87 posts since Apr 2006
Reputation Points: 10
Solved Threads: 2
 

I give an alternative to do so:
First:
Create a class in witch u create a static string variable
Here is the procedure:
first step:

public class Variables
{
public static string myVariable ="";
}

Second step:
In the event handler ChildForm_Formclosing(object sender, EventArgs e)
implement it as follow
ChildForm_Formclosing(object sender, EventArgs e)
{
Variables.MyVariable=TextBox.Text.ToString();
}

Third step:
In the Main form

//define an instantiate a new ChildForm
ChildForm oChildForm = new ChildForm();
//Add a new event
oChildForm.FormClosing+= new EventHandler(ChildForm_FormClosing)
{
TextBox1.Text = Variables.MyVariable;
}

Jugortha
Junior Poster
172 posts since Oct 2007
Reputation Points: 11
Solved Threads: 16
 

Ok, sounds simple but how about a child form having a read only property that can hold a string.
Once the child form closes, this property should still be available immediately after.

change

this.ChildClass = new TextboxForm();
this.ChildClass.Show();
to

this.ChildClass = new TextboxForm();
this.ChildClass.ShowDialog(this);

tostrinj
Newbie Poster
21 posts since Jul 2007
Reputation Points: 12
Solved Threads: 1
 

Thanks All!

blacklocist
Junior Poster in Training
87 posts since Apr 2006
Reputation Points: 10
Solved Threads: 2
 

This question has already been solved

Post: Markdown Syntax: Formatting Help
You