ShowDialog ()없이 Windows Forms Windows간에 변수 전달
Windows Forms 응용 프로그램을 프로그래밍 할 때는 반드시 옵션 양식이나 팝업 검색 프롬프트와 같은 두 번째 양식 창에서 변수를 가져와야합니다.
대부분의 가이드는 두 번째 양식 창을 닫을 때까지 사용자가 다른 작업을하지 못하도록 차단하는 ShowDialog ()로 두 번째 양식을 열어야한다고 알려줍니다. 예를 들어 찾기 / 바꾸기 대화 상자에서는이 기능이 잘 작동하지 않습니다. 그것은 또한 사용자 정의 그려진 팝업 양식에 대해서는 잘 작동하지 않습니다..
양식간에 변수를 전달하는 빠른 방법은 대리인을 사용하는 것입니다. 두 번째 양식의 Closing 이벤트에 대한 이벤트 핸들러를 설정하고 첫 번째 양식에서 이벤트를 처리 할 수 있습니다. 이렇게하면 두 번째 양식 창이 닫히기 전에 변수를 캡처 할 수 있습니다..
이 연습에서는 두 가지 형식이 있다고 가정합니다.
MainForm
OptionsForm
우리는 Show () 메소드 호출로 OptionsForm을 여는 일종의 버튼을 클릭했다고 추측 할 것이다. 이제 마법에 대해 살펴 보겠습니다.
.... 한조각… .
OptionsForm theform = 새로운 옵션 폼 ();
theform.Closing + = 새로운 CancelEventHandler (theform_Closing);
theform.Show ();개인 무효 theform_closing (개체 발신자, CancelEventArgs 전자)
옵션 폼 theform = (OptionsForm) 보낸 사람;
// 옵션 양식에서 변수를 가져옵니다. 옵션 양식은 닫히기 전에이 변수를 설정해야하며 변수는 public으로 표시되어야합니다..
문자열 localvar = theform.thestringvariable;
그게 다야..