Child form
public partial class ChildForm : Form
{
public ChildForm()
{
InitializeComponent();
MainForm.OnChildTextChanged += MainForm_OnChildTextChanged;
MainForm.OnButtonClick += MainForm_OnButtonClick;
bttn1.Visible = false;
}
void MainForm_OnButtonClick(object sender, EventArgs e)
{
this.bttn1.PerformClick();
}
void MainForm_OnChildTextChanged(string value)
{
this.textBox1.Text = value;
}
private void bttn1_Click(object sender, EventArgs e)
{
MessageBox.Show("I am hide. But shows message");
}
}
public class Bttn : Button
{
public new void PerformClick()
{
this.OnClick(EventArgs.Empty);
}
}
Create a Parent Form
public partial class MainForm : Form
{
public delegate void OnMyTextChanged(string value);
public delegate void ButtonClicked(object sender, EventArgs e);
public static event OnMyTextChanged OnChildTextChanged;
public static event ButtonClicked OnButtonClick;
ChildForm frm = new ChildForm();
public MainForm()
{
InitializeComponent();
frm.Show();
}
public void button1_Click(object sender, EventArgs e)
{
OnChildTextChanged("this is new value");
OnButtonClick(sender, e);
}
}