간단한 C# 응용 프로그램을 만들려고합니다. (C#에서 첫 번째 시도는 친절합니다.) "인증 코드"를 캡처하는 텍스트 상자가있는 양식을 작성한 다음 유효성을 검사 한 다음 웹 클라이언트가이 인증 코드를 요청에 전달하는 XML 파일을 가져옵니다. 전송 된 데이터는 e.c.t로 파싱됩니다.C# 두 번째 형식은 초기화 후 닫습니다.
내가하고 싶은 것은 xml이 돌아 왔고 그것이 유효하다는 것을 확인하기 위해 내 수표를 다 만들었습니다. 첫 번째 폼을 닫고 두 번째 폼을로드하려는 경우 xml 데이터를 예쁜 형식으로 표시하는 데 필요한 폼 구성 요소를 프로그래밍 방식으로 추가합니다.
제 문제는 두 번째 양식을 열어 두지 못하는 것입니다 (틀린 방식으로 두 번째 양식을 의심 할 여지없이). 다음은 내가 가지고있는 것입니다.
// close current form
this.Close();
//open new form
xmlViewForm xmlView = new xmlViewForm();
xmlView.Show();
나는 지금 실수를 저지른 것으로 확신합니다. 그러나 완전성을 위해 분명한 사실을 밝히기 위해서는 첫 번째 양식을 닫고 두 번째 양식을 연 다음 즉시 프로그램이 종료됩니다 (두 번째 양식은 분명히 두 번째 양식으로 깜박입니다).
나는 몇 가지를 시도했지만 그들 중 누구도 (Application.Run(new xmlViewForm());
를 사용하여 포함하는 대신 클래스를 인스턴스화하고 show()
방법을 사용하여 작동하지. 분명히 당신은 작동하지 않는 알고, 내가 이해 해달라고하지만 지금은 너무 할 C#을도 원격으로 충분 :) 어떤 도움을 이유.
감사를 해결하기
고마워 키이스, 그게 내가 필요한거야. 나는 Sean에게 당신이 그것을 닫을 수없는 이유를 물어봤을 뿐이었다. (현재의 응용 프로그램은 잘 감추고 작동하지만, 더 큰 응용 프로그램은 메인 윈도우를 닫아야 리소스 사용을 제한 할 수 있다고 상상할 수있다. 빈 폼을 주 컨트롤러로 사용하고 즉시 숨김). 당신의 설명은 완벽합니다. 왜 고침이 작동하는지 알지 못하고 무언가를 고치는 법을 아는 것이 싫어서, 나에게 아무런 도움이되지 않습니다. – Lee
'기본 양식'에는 특별한 것이 없습니다. 그것은 보통 엔트리 포인트 메쏘드의 마지막 라인 일 것입니다. Application.Run (Form) 호출 뒤에 추가 코드를 실행하면 해당 양식을 닫으면 사용자가 전체 프로그램을 닫으려는 응용 프로그램에 신호를 보내는 것이 오도하는 것입니다. – Mufaka
OP를 포함한 6 명이 내가 옳다고 생각합니다. 내 대답에 문제가있는 사람은 너 밖에 없어. 'Application.Run()'을 여러 번 호출하거나 Run()을 한 번 호출 한 후에 정리 코드 이외의 다른 것을 호출하는 것은 잘못된 코드입니다. OP가 사용자의 권장 사항을 따르지 않는다고 가정하면 기본 폼이 닫히고 Windows에 메시지 펌프가 종료되고 프로그램이 Run() 호출 이후 계속 진행되며 대개 App.Run과 같은 기본 메소드에서 즉시 반환됩니다()는 마지막 줄입니다. 당신의 대답은 틀렸어. 그것을 전문으로 다루고 보복 대신에 배웁니다. – KeithS