#c# #winforms #mdi
#c# #winforms #mdi
Вопрос:
У меня есть форма, которая this.IsMdiContainer = true
. Я показываю в нем дочернюю форму.
FrmCustomer frm=new FrmCustomer();
frm.MdiParent = this;
frm.Show();
Я хочу показать форму showdialog в FrmCustomer. Я использую этот код,
FrmCustomerDetail frm=new FrmCustomerDetail(null);
frm.MdiParent = this.MdiParent;
frm.ShowDialog();
но я получаю сообщение об ошибке,
Форма, которая не является формой верхнего уровня, не может отображаться как модальное диалоговое окно. Удалите форму из любой родительской формы перед вызовом ShowDialog. ‘
Комментарии:
1. оставьте,
frm.MdiParent = this.MdiParent
и он будет работать. Вы не можетеShowDialog
MdiChildren2. @GuidoG Спасибо, но я хочу показать форму в mdicontainer.
3. Объясните, что вы имеете в виду с
but i want to show form in mdicontainer
4. когда я использую только showdialog, форма отображается вне контейнера
5. Это цель ShowDialog. Это не может быть легко изменено
Ответ №1:
Одним из способов сделать это было бы оставить наш MdiOwner и установить владельца окна, используя параметр метода ShowDialog.
FrmCustomerDetail frm=new FrmCustomerDetail(null);
frm.ShowDialog(this);
Комментарии:
1. Чем объяснить, что вы имеете в виду. На мой взгляд, это правильный ответ, если вы хотите чего-то другого, пожалуйста, отредактируйте свой вопрос и уточните, что вы хотите
2. Вы не можете использовать Form.ShowDialog в контейнерах MDI.