Im делает приложение форм MDI Windows в C#, я пытаюсь создать дочерние формы mdi для открытия в одном экземпляре. Я использую этот пример кода в событии button_click в новом проекте только для целей тестирования, и он отлично работает там, но когда я реализую этот код в своем основном проекте, он просто ничего не делает. Я предоставляю те же условия, что и в тестовом проекте, но это не сработает. Я просто не понимаю, почему.Mdi Child формирует один экземпляр
В обеих формах имеется один родитель MDI. Form1 загружается с родителем MDI.
Кнопки нажмите событие в Form1 для открывающихся Form2:
private void button1_Click(object sender, EventArgs e)
{
if (System.Windows.Forms.Application.OpenForms["Form2"] as Form2 == null)
{
Form2 F2 = new Form2();
F2.MdiParent = this.MdiParent;
F2.Show();
}
else
{
Form2 F2 = (Form2)Application.OpenForms["Form2"];
F2.Focus();
}
}
Вот еще информация:
Родительской MDI является пусковой формой для проекта.
Форма загрузки родителя MDI выглядит следующим образом:
private void MDI_Load(object sender, EventArgs e)
{
Form1 F1 = new Form1();
F1.MdiParent = this;
F1.Show();
}
Это на самом деле сделал работу. Большое спасибо. Но я до сих пор не понимаю, почему это не нужно в некоторых случаях. Form2 F2 = новый Form2(); F2.MdiParent = this.MdiParent; F2.Show(); F2.Name = "Form2"; – Damian