У меня есть две формы: mdfi
и form1
. Я хочу сделать mdfi
формой MdiContainer
кодом от form1
. Я пробовал следующее, но программы закрываются при запуске:Форма MdiContainer не открывается
2
A
ответ
2
Изменение главного окна вашего приложения в дочернем окне имеет много побочных эффектов. Winforms вынужден уничтожить окно из-за назначения MdiParent. Этого достаточно, чтобы завершить вызов Application.Run() в методе Main(), и это конец вашего приложения. Вы должны изменить это:
[STAThread]
static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
var main = new Form1();
main.Show();
Application.Run();
}
И вы должны убедиться, что вы в настоящее время заканчиваются, когда родитель MDI закрыт:
private void Form1_Deactivate(object sender, EventArgs e) {
this.TopMost = false;
var newMdiParent = new mdfi();
newMdiParent.IsMdiContainer = true;
this.MdiParent = newMdiParent;
newMdiParent.FormClosed += (s, ea) => Application.Exit();
newMdiParent.Show();
this.Deactivate -= Form1_Deactivate;
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e) {
if (this.MdiParent == null) Application.Exit();
}
Смежные вопросы
- 1. Форма 2 не открывается?
- 2. Форма Delphi не открывается
- 3. mdicontainer overlap the childcontrol
- 4. Форма диалога jQueryUI не открывается
- 5. WinForms MdiContainer Menu
- 6. Родительская форма Открывается, когда закрывается детская форма?
- 7. Access 2007 - Docmd.OpenForm не открывается форма, OpenArgs?
- 8. ms-access 2003: форма не открывается! Помогите!
- 9. C# не открывается форма из класса
- 10. Моя форма не открывается в STA
- 11. DataGridView BeginEdit, когда форма открывается
- 12. Панель меняет размер в MdiContainer
- 13. Форма открывается в новом iframe
- 14. Форма Ax2012 открывается только один раз
- 15. Пользовательская форма, которая открывается при открытии листа
- 16. Раскрывающийся список исчезает, когда форма снова открывается
- 17. C# С какой формы открывается другая форма?
- 18. CodeIgniter - открывается всплывающая форма JS, затем закрывается
- 19. Форма с UserControl открывается в VS2013, но не в VS2015
- 20. OpenFileDialog в моей форме Не открывается всплывающая форма браузера Windows
- 21. Новая форма Visual Studio не открывается, нет ошибок
- 22. ExtJs 3.4 Форма в окне не открывается повторно
- 23. Почему OpenFileDialog не открывается?
- 24. JQueryUI Dialog не открывается
- 25. fancybox iframe не открывается
- 26. Обнаружение doubleClick на mdiContainer без ребенка (C# winforms)
- 27. Wordpress, iframe, форма с переадресацией открывается только внутри iframe
- 28. Перезагрузите набор данных каждый раз, когда открывается дочерняя форма.
- 29. Отключить кнопки, в зависимости от того, где форма открывается из
- 30. Форма Microsoft Access открывается сведенной к минимуму после ее изменения.
Почему вы пытаетесь добавить форму во время мероприятия Деактивировать (!) – User999999
Я делаю просмотрщик изображений похожим на Google picasa, поэтому, когда пользователь нажимает где-либо на экране, он создает форму mdi и изображение, соответствующее этому. –
Форма MDI находится внутри родительской формы. Я не уверен, что это то, чего ты хочешь. Вы нажимаете кнопку [X], чтобы закрыть 'form1', когда этот код вызывается? –