양식을 만들고 표시 할 때 양식이 열려있을 때 응용 프로그램을 닫으면 (종료) 스택 오버플로 예외가 발생합니다.열린 양식으로 응용 프로그램을 닫을 때 스택 오버플로가 발생했습니다.
private static void OpenSettings(Object sender, EventArgs e)
{
ActionLog.Write("Opened Settings");
form_Settings f_Settings = new form_Settings();
f_Settings.Show();
}
컨텍스트 메뉴 콜을 사용하여 내 응용 프로그램 닫기 :
private static void Quit(Object sender, EventArgs e)
{
ActionLog.Write("Exit");
Settings.Serialize();
Environment.Exit(0);
}
예외가 GUI.form_Settings.Dispose
함수 슬로우
형태 표시. 이 함수는 절대 종료되지 않고 무한 재귀를 발생시킵니다.
응용 프로그램을 닫을 때 창이 열리지 않으면 모든 것이 잘됩니다.
어때?
// 편집 : 꽤 표준입니다
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
맞춰, 나는 어떤 다른 정의를 찾을 수 없습니다. 또한이 동작에 대한 이유가 될 수있는 사용자 지정 프레임 워크 (https://github.com/viperneo/winforms-modernui)를 사용하고 있음을 말씀 드리고 싶습니다.
예외가'Dispose()'메소드에서 발생하면, 아마도 그 메소드를 게시해야합니까? 주어진 코드는 문제와 관련이 없습니다. – TypeIA
Show() 호출 후 f_settings.Close()에 대한 호출을 추가하면 어떻게됩니까? 또한 OpenSettings를 처음 실행하면됩니까? –
'종료'는 어디에서 호출됩니까? –