2013-05-23 3 views
-1

런타임 중에 컨트롤을 제거하려고 시도합니다. 나는컨트롤의 처분

경우 (Controls.Contains (myControl)) 그 안에 선이

Controls.Remove (myControl)를 실행하고 있기 때문에 true를 돌려

와 그것의 존재를 확인;

는하지만 어떤 이유로이 반환

System.NullReferenceException : 개체 참조가 개체의 인스턴스로 설정되지 않았습니다.

컨트롤에 컨트롤이 포함되어 있으면 어떻게 null 참조가 될 수 있습니까?

+1

게시 된 코드로는 문제를 표시하기에 충분하지 않습니다. myControl이란 무엇이며 어떻게 사용하고 있습니까? 그것을 제거, btw, 컨트롤을 처분하지 않습니다. 이를 위해서는 컨트롤의 Dispose 메서드를 호출하면 컬렉션에서 제거됩니다. – LarsTech

+0

런타임 중에 추가하고 런타임 중에 제거하려고합니다. Dispose는 동일한 NullReferenceException을 발생시킵니다. – user1340531

+0

멀티 스레딩 문제 일 수 있습니까? 즉, 다른 스레드가 말하는 스레드가 잘못된 동작을하는 것처럼 보이게 할 수 있습니까? – Stochastically

답변

0

Controls은 변수가 Null이되는 것으로 추측합니다. Controls.Remove는 Null을 throw한다는 것을 나타내지 않기 때문입니다.

the MSDN

실제로 속성 게터 Controls?을 참조하십시오 반환 된 값은 페이지 수명주기 상태 또는 세션 상태에 종속적입니까?