ответ Tom является превосходным!
Только вещь, которую я добавил бы, никогда не состоит в том, чтобы иметь "объявлений использования" в заголовочных файлах. Им нужно только позволить в файлах реализации, например, foo.cpp
.
логика для этого хорошо описана в превосходной книге "Ускоренный C++" (, ссылка Amazon - санированный для деточки сценария связывает нацистов)
Похоже, вы пытаетесь создать пользовательский интерфейс в веб-стиле, в котором пользователь переходит с одной «страницы» (представленной формой) на другую.
Вместо реализации подобный пользовательский интерфейс с отдельными формами, вам лучше сделать это с помощью UserControls, размещенных в единственной родительской форме.
Прочтите эту статью MSDN, которая включает загрузку с образцом кода. Это отличное пошаговое руководство для разработки такого рода пользовательского интерфейса:
IUI и навигация в веб-стиле в Windows Forms, часть 1
IUI и навигация в веб-стиле в Windows Forms, часть 2
Edit
If вы намерены показать две отдельные формы, есть ли причина, по которой вам нужно отображать вторую форму модально? Разве нельзя просто показать, а потом спрятать оригинал?
form2.Show();
form1.Hide();
...
Я думаю, что в winforms есть свойство, хотите ли вы отображать его на панели задач или нет.
Вместо скрытия используйте параметр закрытия.
Form1 formObject = new Form1();
formObject.Close();
или просто
this.Close();
Я могу прояснить ваши сомнения относительно того, как выполнить перенаправление с одной формы1 на форму2
, например: поместите ссылку в form1 и напишите в ней следующий код
form2 ins=new form2();
ins.show();