본문 바로가기

C계열/C#

Form간 자료 이동 중 개체 참조가 개체의 인스턴스로 설정되지 않았습니다.

대단한 팁은 아니지만 내가 억울하게 끙끙거려서 여기다가 메모를 남긴다.

 

//Form1
Form1 dlg = Form2(apple, bear, cat);
...

//Form2
public Form2(byte[,] Apple, byte[,] bear, byte[,] cat)
        { ...}

위와 같이 form간의 이동을 할때 "생성자"를 이용해서 자료를 받을 때가 있는데

(꼭 생성자로 받을 필요는 없다.)

 

위와 같이 쓰게 되면 바로 

 

"개체 참조가 개체의 인스턴스로 설정되지 않았습니다." 라는 에러가 등장한다. 

 

해결법은 Form2에서 Component를 초기화 시켜주면 된다.

 

//Form1
public void send()
	{
		Form1 dlg = Form2(apple, bear, cat);
		...
	}


//Form2
public Form2(byte[,] Apple, byte[,] bear, byte[,] cat)
        { 
        	InitializeComponent();
                ...
         }

InitializeComponent();를 생성자의 맨앞에 붙여주면 해결되었다.

 

잊고 있었던 생성자의 초기화가 이렇게 발목을 잡을 줄 몰랐다.