Я использую материнскую форму MDI, которая имеет Чайлдс и они показывают очень хорошо, когда они вызываются этим родителем, и я использую для intensiate дочерней формы, какMDI Вышестоящей форма Проблемы установки Родитель
ChildForm child = new ChildForm();
child.IsMdiContainer= this;
child.Show();
работы так как они вызываются из родительского элемента управления, но если я вызываю их из другой формы, которая не является дочерней родительской формой, то они больше не остаются дочерними элементами основного родителя. Одна очевидная причина заключается в том, что, когда я интенсифицирую их в этой независимой форме, Я просто не могу использовать child.MDIParent = this; потому что он будет стремиться сделать самостоятельную форму родителя, но я также попытался
MDIParentForm form = new MDIParentForm
ChildForm child = new ChildForm();
child.IsMdiContainer= form ;
child.Show();
, но это также доза не поможет, вместо этого он бросает исключение, что форма, которую я пытаюсь установить родительский не MDI Container затем это я даю попробовать и изменить
MDIParentForm form = new MDIParentForm ;
form.IsMdiContainer= true;
ChildForm child = new ChildForm();
child.MDIParent = form ;
child.Show();
и в результате ничего не появляется
Любая идея, как ..........
ОК это прекрасно работает, но что, если форма от вас будет называть дочернюю дозу, у которой нет родителя, можно сказать, что у родителя есть всплывающее сообщение, которое не является дочерним элементом этой формы, как тогда, какая схема должна быть принята? –
Лоты способов. Очевидным способом является передача ссылки на родителя через конструктор формы. Даже Application.OpenForms [0] будет работать. Предоставляя родительскому статическому свойству, должен быть только один родитель MDI. Предоставление родителям помощи в создании детей - лучший способ. Это специальное событие, о котором я упомянул. Или возвращаемое значение ShowDialog(). –