В моем приложении у меня есть 4 формы, form1 - контейнер mdi, а остальные формы - это childs, в form1. Я открываю всю дочернюю форму в своем событии загрузки. в детской form2 у меня есть кнопка, которая будет переключаться на childform3.my проблема заключается в том, чтобы показать childform3 (который уже открыт) от кнопки в childform2Как показать (Bringtofront) уже открытую дочернюю форму Mdi из другой формы ребенка Mdi?
form1:
Form2 formchild1;
Form3 formchild2;
Form4 formchild3;
private void Form1_Load(object sender, EventArgs e)
{
if (formchild2 == null)
{
formchild2 = new Form3();
}
formchild2.MdiParent = this;
formchild2.Dock = DockStyle.Fill;
formchild2.Show();
//formchild2.BringToFront();
if (formchild3 == null)
{
formchild3 = new Form4();
}
formchild3.MdiParent = this;
formchild3.Dock = DockStyle.Fill;
formchild3.Show();
if (formchild1 == null)
{
formchild1 = new Form2();
}
formchild1.MdiParent = this;
formchild1.Show();
formchild1.Dock = DockStyle.Fill;
formchild1.BringToFront();
}
form2:
Form3 formchild2;
private void button1_Click(object sender, EventArgs e)
{
//what i have to write hare..
//formchild2 = new Form3();
//formchild2.MdiParent = this.ParentForm;
//formchild2.Dock = DockStyle.Fill;
//formchild2.Show();
//formchild2.BringToFront();
}
Если я инициализирую новые экземпляры в кнопке, он создаст новый экземпляр формы при каждом нажатии кнопки. – user3413736
Сделать одну дочернюю форму, осведомленную о другой, является очень практичной практикой. Поместите этот код в родительскую форму MDI вместо этого, он обязательно уже знает обо всех ваших дочерних формах. Просто назовите его от ребенка, что-то вроде ((MyMDIParent) this.MdiParent) .FooBar(). –
Я не получил ваше объяснение, пожалуйста, любезно отправьте еще несколько кодов, спасибо – user3413736