그래서 콘솔 응용 프로그램이지만 몇 가지 양식을 관리하는 프로그램이 있습니다. 기본 양식은 보조 양식을 시작할 수있는 기능을 가지고 있으며 보조 양식 중 하나 이상을 시작할 수 있기를 원합니다.화면에서 .Show() 메서드를 사용하여 시작한 양식을 유지하는 방법
문제는 modal 명령 Form.ShowDialog()
을 사용할 때 보조 양식에서 벗어나 기본 양식에 액세스 할 수 없기 때문에 두 번째 보조를 시작할 수 없습니다.
내가 Form.Show()
으로 실행하는 데 문제가 발생하면 양식이 다시 시작되자 마자 다시 닫힙니다. 물론, 그것은 초기 기능을 수행하지만 즉시 사라집니다. 이 모덜리스 디스플레이에 접근하는 가장 좋은 방법은 무엇입니까?
EDIT : 여기에 제가 작업하는 형식이 있습니다. 양식을 처리하는 자체 정의 된 프로세스 클래스와 각 프로세스가 콘솔 앱의 목록에 저장되어 있으며 각 프로세스는 자체 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));
}
}\
편집
: \ 나는 해결 방법 찾을 수 있었다. 내가 일하는 프로젝트가 시뮬레이션 된 OS와 비슷하기 때문에 Form.ShowDialog()를 사용하여 기본 GUI Form을 시작하고 Form.Show()를 사용하여 다음 양식을 모두 실행한다고했는데 이것이 작동하고있는 것 같습니다. 나를 위해
이 일반적인 것이 아닙니까? 대화 상자를 시작할 때 동일한 솔루션의 다른 형식으로 이동해서는 안됩니다. 죄송합니다. 질문을 잘못 해석 한 경우 :/ – sora0419
문맥 : OS GUI를 시뮬레이트하는 프로젝트가 있습니다. 보조 양식은 OS의 "프로그램"(지금까지는 텍스트 편집기)입니다. 한 번에 하나 이상의 "프로그램"을 열 수 있기를 바랍니다. – JeffL