2010-05-18 3 views
0

나는 splitcontainer 안에 도킹 된 목록보기의 parent을 얻으려고하는데, ListView.Parentnull 인 것을 발견했습니다.WinForms : Control.Parent가 null 인 이유는 무엇입니까?

서에 따라이 같아야 컨트롤의 부모 컨테이너 또는 컨트롤을 나타낸다

A 컨트롤.

누구든지이 속성이 null 일 수있는 이유를 설명 할 수 있습니까? ListView를 폼으로 옮겨 보았습니다. (splitcontainer에 도킹했을 때 이상한 동작을 배제하기 위해) 아무 소용이 없었습니다.

+0

잘못된 참조가 있습니다. 얻은 방법을 보여주는 스 니펫을 게시하십시오. –

답변

2

이것은 완전히 불행한 실수였습니다. 부끄러움 때문에 제 질문을 삭제하는 대신 다른 사람이 똑같이하는 경우에 내가 뭘 잘못했는지 말할 것입니다.

기본적으로 내 코드는 ListView.Disposed 이벤트의 결과로 실행되고있었습니다. 이 이벤트는 부모 컨트롤 컬렉션에서 컨트롤을 제거한 후 발생합니다 (Parent이 null 인 경우).

0
  1. splitcontainer의 controls 컬렉션에있는 목록보기가 있습니까?
  2. 언제 부모 속성을 확인하고 있습니까? OnLoad 메서드를 무시하고 base.OnLoad이 호출 된 후에 확인할 수 있습니까?
0

ListView는 SplitContainer의 SplitterPanel (designer-bug?) 컨트롤 컬렉션에없는 것 같습니다. 는 디자이너의 작업을 수동으로이 같은 designer.vb에서 변경 나던 때 (?) : 당신은 당신이 올바른 목록보기를 사용하고 있는지 확인

Me.SplitContainer1.Panel2.Controls.Add(Me.ListView1) 
0

있습니까? 그것이 winforms 애플 리케이션에 나타나는 경우, 나는 그것이 부모를 가지고 있다고 생각합니다. 그렇지 않으면 폼에서 시작하고 자식을 재귀 적으로 히트하므로 렌더링되지 않습니다. 아직 실제로 사용하지 않은 새로 생성 된 listview에 대한 참조가있는 경우 부모는 null 일 수 있습니다.

관련 문제