는 방법을 사용하지 않는 Alt+F4 를 닫을 형성하는가?
문제
는 가장 좋은 방법은 무엇입제 Alt + F4 c#승 양식에서 사용자를 방지하기 위해 닫을 형성하는가?
내가 사용하는 형태로는 팝업화를 진행 상태를 표시고 내가 원하지 않는 사용자가 될 수 있을 닫습니다.
해결책
이는 작업:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
}
편집:에 대응하여 pix0rs 관심 예 당신은 올바른 것이 될 수 있을 프로그래밍 응용 프로그램을 닫습니다.그러나,당신은 단순히 제거하는 이벤트에 대한 처리기 form_closing 이벤트 닫기 전에 양식을:
this.FormClosing -= new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);
this.Close();
다른 팁
당신 값 의 FormClosingEventArgs e.CloseReason
,그것은 말할 것입니다 왜 양식을 닫고 있습니다.결정할 수 있습니다 다음은 무엇을 위해,가능한 값은 다음과 같습니다.
회원 이름 설명
없음 -의 원인이 폐쇄를 정의하지 않거나 결정할 수 없습니다.
WindowsShutDown -운영 체제 폐쇄되기 전에 모든 응용 프로그램을 종료합니다.
MdiFormClosing -부모의 형태로 이 여러 문서의 인터페이스(MDI)형태입니다.
UserClosing -사용자가 닫 양식을 통해 사용자 인터페이스(UI)가,예를 들어 닫기 단추를 클릭하여서 양식 창이 선택에서 가까운 창의 제어 메뉴는 눌러 ALT+F4.
TaskManagerClosing -마이크로 소프트 윈도우 작업 관리자는 응용 프로그램을 닫.
FormOwnerClosing -소유자는 양식이다.
ApplicationExitCall -출구 방법의 응용 프로그램 클래스가 호출됩니다.
저는 이것을 믿는 방법은 바로 그것을 하:
protected override void OnFormClosing(FormClosingEventArgs e)
{
switch (e.CloseReason)
{
case CloseReason.UserClosing:
e.Cancel = true;
break;
}
base.OnFormClosing(e);
}
참고 하는것은 나쁜 형태로 간주 응용 프로그램을 완전히 방지하는 자체에서 마감.확인해야 합니다 이벤트에 대해 인수 닫는 이벤트는 방법을 확인하고 왜 응용 프로그램이 요청을 닫습니다.는 경우 그것은이 때문에 윈도우 종료할을 방지하지 않아야 가까이에서 일어나고 있다.
할 수 있 처리 FormClosing
이벤트 설정 FormClosingEventArgs.Cancel
하기 true
.
내가 사용하는 형태로는 팝업화를 진행 상태를 표시고 내가 원하지 않는 사용자가 될 수 있을 닫습니다.
는 경우에는 사용자가 결정된 응용 프로그램을 종료(과 지식)충분한 alt+f4 를 누르,그들은 대부분한 지식을 실행하기에 충분한 작업 관리자를 죽이는 대신 응용 프로그램.
최소 alt+f4 앱을 할 수 있는 종료보다는 만드는 사람들이 죽습니다.에서의 경험,사람들을 죽이는 귀하의 프로그램을 사용 손상 config 파일,깨진 데이터베이스,절반 완료하는 작업을 재개할 수 없습니다,그리고 다른 많은 고통스러운 일이다.
최소력하라는 메시지가 표시와'당신은 반드시'보다는 오히려 평면을 방지한다.
이는 해킹 사용 Alt + F4.
private void test_FormClosing(object sender, FormClosingEventArgs e)
{
if (this.ModifierKeys == Keys.Alt || this.ModifierKeys == Keys.F4)
{
e.Cancel = true;
}
}
이는 작업:
bool myButtonWasClicked = false;
private void Exit_Click(object sender, EventArgs e)
{
myButtonWasClicked = true;
Application.Exit();
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (myButtonWasClicked)
{
e.Cancel = false;
}
else
{
e.Cancel = true;
}
}
것에서 formclosing 호출될 경우에도를 사용하여 프로그래밍 방식으로 이 창을 닫으면?그렇다면,당신은 아마도 어색하고 코드를 허용할 양식을 폐쇄 할 때 당신은 그것으로 마친(대신은 항상을 취소하는 작업이)
Subscribe 에서 formclosing 이벤트
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = e.CloseReason == CloseReason.UserClosing;
}
단 하나의 라인 방법에 몸입니다.
숨기기 닫기 버튼을에서 양식을 사용하여 다음에서 생성자의 형태로 되어 있습니다.
this.ControlBox = false;