2011-03-17 6 views
0

오늘 제가 여기에있어 몇 가지 조언이 필요합니다.사용자 정의 컨트롤을 사용하여 로그인 화면

로그인 논리가있는 사용자 정의 컨트롤이 있습니다. 원래 폼의 응용 프로그램을 중지하지 않습니다 따라서

private void Form1_Load(object sender, EventArgs e) 
{ 
     LoginScreen login = new MainMenu(); 
        login.Parent = this; 
        login.Dock = DockStyle.Fill; 
        login.Show(); 
} 

을하지만 나는 그것이 모달되지 않은 추측 : mainForm에서 나는이 사용하고 있습니다. 물론 로그인 폼이 닫힐 때까지 (그리고 로그인 sucessfull) 메인 폼이 계속되지 않도록해야합니다.

이벤트를 올바르게 사용 했습니까? 로그인 객체가 로그인이 성공했다는 이벤트를 발생시키고 MainForm이 처리하도록하십시오 - 앱을 실행 하시겠습니까?

EDIT : 사용자 정의 컨트롤이며 사용할 수있는 ShowDialog 메서드가 없습니다.

답변

3

Show() 대신 ShowDialog()을 사용하십시오. 당신은 사용자가 OK을 누르지 않을 경우 확인하고이 경우 양식을 닫을 수 있도록

게다가, ShowDialog()는 DialogResult를을 반환

if(form.ShowDialog() != DialogResult.OK) 
{ 
    this.Close(); 
}else 
{ 
    //if login it's ok continue with main form loading... 
} 

편집 :

그것은 UserControl을의 점을 감안 :

  • 새 양식 클래스를 만들고 사용자 정의 컨트롤을 추가하십시오 (예 : 디자이너 사용)
  • 실체화를하고 FormLoad 코드 ShowDialog()를 호출 (코드 당신이 게시 한 유사하지만, 대신 당신의 UserControl을의 로그인 폼을 실체화 할 필요)
+0

해당 사용자 정의 컨트롤에 ShowDialog 메서드가 없습니다. ( – Mocco

+0

아, 사용자 정의 컨트롤입니다 ... 편집 해주세요) – digEmAll

+0

내 편집 확인;) – digEmAll

0

대신 당신이 login.ShowDialog(this);을 사용할 수 login.Show();의 , 양식에 대한 모달 팝업을 제공합니다.

0

(이상한) Form 클래스에서 파생되지 않은 경우 Windows 양식을 만들고 컨트롤을 입력 한 다음 양식의 ShowDialog 메서드를 호출하십시오. 폼의 닫기를 로그인 화면의 컨트롤에 연결해야합니다. 이벤트가 발생하면 문제가되지 않습니다.

관련 문제