2011-01-31 6 views
0

의 인스턴스로 설정되지 않았습니다 나는 다음과 같은 코드가 있습니다 사용자가 트 리뷰에서 노드를 클릭 할 때C# 개체 참조가 개체

panel4.Controls.Clear(); 
     panel4.Controls.Add(dgv.addDatagrid(animal, experiment, pluginIdentifier)); 
     dgv.ConfigureDatagrid(); 

가 불려 도착합니다. 처음 클릭하면 예상대로 작동하고 DataGrid를 가져 와서 패널에 추가합니다. 그러나 이후의 모든 호출에서 panel4.Controls.Clear() 행에 '객체 참조가 객체의 인스턴스로 설정되지 않았습니다'라는 오류가 발생합니다. 왜 그런지 알아?

감사합니다.

+1

코드에서 'ConfigureDatagrid' 메소드의 코드를 게시하여 컨트롤이 null이 될 수 없으므로'panel4'가 삭제됩니다. 또 다른 옵션은 당신이 잘못된 라인을 가지고 있고 아마도'dgv'가 null이라는 것입니다. –

+0

코드를 더 추가 할 수 있습니까? 분명히'panel4'는 어딘가에 리셋됩니다. – Vlad

+0

와우, 얼마나 많은 관련 질문이 동일한 제목을 공유하는지 놀랍습니다 ... Nulls suck. –

답변

2

중단 점을 panel4.Controls.Clear(); 중단 점이 두 번째로 눌려지면 모든 컨트롤에서 null을 확인하여 어느 것이 오류를 던지는지 확인할 수 있어야합니다. panel4 될

의 가능성 또는 DGV

+0

모든 컨트롤에서 null을 확인하려면 어떻게해야합니까? 이것이 바보 같은 질문이라면 미안 ... 나는 꽤 새로운 디버깅에 익숙하다. 감사. –

+0

중단 점이 노란색으로 바뀌면 변수/컨트롤 이름 위로 마우스를 가져 가면 – WraithNath

+0

@ Darren을 볼 수 있습니다. 디버거가 해당 행에서 중단되면 'panel4'텍스트 위로 마우스를 가져 가면됩니다. 해당 변수의 값을 표시하는 작은 상자 팝업이 나타납니다. 또는 조사 식 창에 'panel4'를 입력하거나 직접 실행 창에 '? panel4'를 입력 할 수 있습니다. –

0

그냥 코드를 기반으로 추측을 ... 그것은 그 panel4가 null 또는 panel4.Controls가 null이 될 수 중 하나. panel4가 어디에 사용되고 어떻게 사용되는지 살펴보고 올바르게 초기화되었는지 확인하십시오.

0

모든 필드 값의 오류는 null이됩니다. Controlls.Add 함수가 호출하는 곳에서 디버그하고 모든 매개 변수가 null 값을 가지고 있는지 확인하십시오.

관련 문제