나는 WinForm
안에 UserControl
을 사용하여 데이터를 표시하고 있습니다. 또한 명령 패턴을 사용하여 UserControl
이 (약한) 이벤트를 등록하고 명령이 트리거 될 때 처리합니다.UserControl을 더 이상 사용하지 않는 방법 (Close 이벤트 없음)
WinForm
에서 Close
이벤트의 이벤트를 등록 취소 할 수 있습니다. 그러나 UserControl
에는 그러한 이벤트가 없습니다. UserControl
이 더 이상 디스플레이 스택에 없지만 아무 것도 찾을 수 없을 때 해고 될 것으로 생각되는 이벤트를 연결했습니다. Parent
이 null이고 대부분의 경우 작동하는지 확인합니다.
는 지금은 Parent
속성은 부모가 더 이상 표시 될 때 더 이상 자식 컨트롤에 대해 null도하지 않을 것입니다 아이 다른 UserControl
의 UserControl
(A TabControl
내부 UserControl
을 넣어)과을 가지고 싶습니다.
UserControl
이 사용되는지 알 수있는 방법이 있습니까?
지금까지 시도한 내용 : Dispose()
은 시스템에서 즉시 호출되지 않으므로 유용하지 않습니다. IsVisible
은 시스템에 의해 업데이트되지 않습니다. Close
또는 Unload
이벤트가 발생하지 않습니다.
건배.
나는 UserControl을 직접 추가하거나 제거하고있다. Disposed 이벤트가없고 Dispose 메서드가 이미 디자이너 코드에서 재정의되어 있으므로 여기에 내 코드를 추가 할 필요가 없습니다. – R4cOON
Designer.cs 파일의 Dispose 메서드 재정의를 잘라내어 코드 파일에 붙여 넣습니다. 디자이너 파일의 몇 가지 유효한 편집 중 하나 인 "Component Designer generated code"라고 표시된 영역 앞에 * 있습니다. –
주 클래스 파일에 Dispose() 메서드를 넣을 수 있다는 것을 몰랐습니다. 그때 가야 올바른 길처럼 보입니다. 그것은 탭에있는 2 개의 컨트롤로 내 문제를 해결하지 못하고 현재 컨트롤이 활성화되어 있는지 확인하지만 내가 직접 작성해야한다고 생각합니다. – R4cOON