본문 바로가기

카테고리 없음

C# WinForm Cannot access a disposed object.

C#으로 windows form 정의한 후 해당 form 인스턴스를 생성했다가 'x' 눌러 닫으면 garbage collection이 되어 해당 인스턴스가 사라진다. 그런데 다시 그 windosw form을 표시하려고 그 인스턴스에 접근한다면 아래와 같은 메시지가 발생한다.

An unhandled exception of type 'System.ObjectDisposedException' occurred in System.Windows.Forms.dll

Additional information: Cannot access a disposed object.

이를 해결하기 위해서는 해당 windows form 정의에서 아래와 같이 설정해 주어야 한다.

즉, close를 하면 인스턴스를 삭제하는 것이 아니라 Hide를 하라고 설정을 바꾸는 것이다.

this.HideOnClose = true;