2013-05-21 3 views
0

내 질문에 답하는 데 많은 노력을 기울이는 모든 사람들에게 감사드립니다.사용자가 X를 클릭하면 알 수있는 방법

저는 WinForms C#을 사용하고 있으며 MainForm_Load에서 사용자의 로그인 양식을 호출하고 있습니다. 로그인 폼에는 X 버튼 (오른쪽 상단의 기본 버튼)과 로그인 버튼이 있습니다. 이제

...

사용자가 내가 아는 MainForm이, 어떻게 할해야하므로 로그인 양식을 닫는 X 버튼을 클릭하기로 결정하고합니다. 하지만 ... 사용자가 LoginButton을 클릭하면 LoginForm이 닫혀 야하지만 MainForm은 열어 두어야합니다.

그럴 생각이 있으신가요?

+1

_How_에 로그인 폼의 ControlBox 속성을 설정하여 로그인 폼에있는 X 버튼을 비활성화 할 수 있습니다? –

답변

3

Form.FormClosing 이벤트에서 e.CloseReason을 확인할 수 있습니다! 은 X 클릭 또는 사용자가 Alt + F4를 누를 경우

Private Sub YourForm_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing 
    If e.CloseReason = CloseReason.UserClosing Then 
     'Closed by user 
     ' 
     'Do something like 
     'Application.Exit() 
     ' 
     'or close both forms 
    Else 
     'Other close reason 
    End If 
End Sub 

CloseReason

는 UserClosing한다.

5

는 로그인 양식을 보여 ShowDialog를 사용하는 가정에, 당신은이 작업을 수행 할 수 있습니다 : 그것은 닫기 전에

if(LoginForm.ShowDialog() == DialogResult.OK) 
{ 
    //login ok 
} 

는 로그인 양식 확인에 DialogResult를 설정해야합니다,하지만 성공적으로 로그인 그래서 등에 :

로그인 버튼의 클릭 이벤트 핸들러에
if(LoginSuccess){ 
    this.DialogResult = DialogResult.OK;//this will also close the form 
} 
+3

Close() 호출이 필요하지 않습니다. DialogResult를 설정하면 폼이 자동으로 숨겨지고 ShowDialog() 행으로 실행이 반환됩니다. –

+0

@ 아이돌 마인드 : 허 ... 절대 알지 못했습니다. 나는 그것을 좋아하지 않는다. 내가 속성을 설정할 때 기대할 행동이 아니다. – musefan

0

, 기본 폼에 영향을주지 않고,이는 로그인 양식을 닫아야합니다 this.Close()

에 대한 호출을 추가 .

2

이 다른 옵션입니다 : 당신은 로그인 폼을 표시 할

당신은 거짓

관련 문제