Как сохранить форму, которую я запустил, используя метод.Show() на экране
Итак, у меня есть программа, которая сама является консольным приложением, но управляет несколькими формами. Первичная форма имеет возможность запуска вторичной формы, и я хочу, чтобы она могла запускать более одной из ее вторичных форм.
Беда в том, когда я использую модальную команду Form.ShowDialog()
Я не могу отойти от дополнительной формы и получить доступ к основной, поэтому я не могу запустить вторую дополнительную.
Проблема, с которой я сталкиваюсь Form.Show()
, как только форма запускается, она снова закрывается. Конечно, он запускает начальную функцию, но затем он немедленно исчезает. Каков наилучший способ приблизиться к этому немодальному дисплею, но сохранить формы?
РЕДАКТИРОВАТЬ: Вот немного формата, в котором я работаю. У меня есть собственный класс Process, который обрабатывает формы, каждый процесс хранится в списке в консольном приложении, и у каждого свой собственный myFORM.
public class Process
{
/*The process class is used to track all running processes related to GeFoss(any forms or consol apps, etc)
* Methods:
* -initialize: This has two overloads, one for a form, and one for general objects. Basically this just starts the main part of the app
* -ShowDialog: This simply calls the Form.ShowDialog method if the process controls a Form
* -_NewThread: Begins a new thread centered on Leo
* -Leo: simply launches another copy of the same Object
*/
public Form myFORM;
public Type mytype;
.
.
.
.
.
. .
.
.
public void ShowDialog()
{
//This should only be called when the type of Process is a form. If it isn't a form though, the try-catch will prevent a crash
try
{
myFORM.Show();
}
catch (Exception ex)
{
MessageBox.Show(Convert.ToString(ex));
}
}\
\
РЕДАКТИРОВАТЬ: я смог найти обходной путь. Поскольку проект, над которым я работаю, похож на имитируемую ОС, я сказал ему запустить основную форму графического интерфейса с помощью Form.ShowDialog() и все последующие формы с помощью Form.Show(), и это, похоже, работает для меня
1 ответ
Вам нужно создать другую форму. Form form = new Form();
Прямо сейчас вы объявляете свой объект, но никогда не создаете его. Форма myForm это как int a;
у него нет никаких переменных. Для каждого объекта вы сможете сделать то же самое, что и класс Form: form.Show();
Вы ссылаетесь на один и тот же объект. Вот почему это закрывается.