Reputation: 617
i'm using a main form and edit form, and i want to use the edit form text boxes in the main form, how can i do it?
edit
can't use user controls.
Upvotes: 0
Views: 272
Reputation: 848
The easiest way would be create properties that expose the text fields. Call your edit form, then read the properties back.
public class MainForm
{
private void OnEditClick()
{
EditForm editForm = new EditForm();
DialogResult result = editForm.ShowDialog(this);
//check the result for ok/cancel etc if your using them.
whatever = editForm.TextBox1;
whatever2 = editForm.TextBox2;
}
public class EditForm
{
public string TextBox1 { get { return textBox1.Text;} }
public string TextBox2 { get { return textBox2.Text;} }
// etc
}
You could expose the whole control, but if all you care about is the contents of the text boxes, creating properties to expose just those is cleaner.
Upvotes: 2
Reputation: 101614
Does it have to be live? If not, add a property on the edit form and store the value (like an OpenFileDialog does when retrieving the .Filename). After it's closed, retrieve back the property and place it in the main form.
If it does need to be live, you probably need to use events (implement something close to INotifyPropertyChanged in Silverlight) then have the mainform attach to the edit form's events and update the controls as necessary (remember to check if InvokeRequired!)
Upvotes: 0