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.
//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.
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;
}
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);
Last edited by tostrinj; Jan 31st, 2008 at 4:17 pm.
Either the thread starter or a moderator has marked this thread as solved. You can most likely trust the responses and answers given. There is most likely no reason for any further responses to be posted here. If you have a related question, please start a new thread in this forum instead.
This thread is more than three months old
No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.