2012-02-13 2 views
0

Form1 : Form 클래스와 동일한 파일에 클래스가 있고 (직접 진행)이 클래스 내에서 새 컨트롤 (레이블 thisObj = new label();)을 만들고 싶습니다. . 나는이 작업을 수행 할 때 디버깅을 시작할 때 다른 클래스의 Form에서 새로운 컨트롤

Form1 form = new Form1(); 
label thisObj = new label(); 
thisObj.Name = "One"; 
form.Controls.Add(thisObj); 

그러나, 양식 창이로드하지 않습니다 나는 다음과 같은 코드를 사용하려고 노력했다.

EDIT : 줄 "Form1 form = new Form1()"이 양식을로드하지 못하게합니다.

this.Controls.Add(thisObj); 

그것은 현재의 컨트롤을 폼에 추가합니다 :

+0

'Form1 form = new Form1()'은 폼을로드하지 않습니다. 적어도 "Show"또는 "ShowDialog"를 호출해야합니다. –

답변

0

나는이 문제를 해결하기 위해 Form의 인스턴스를 클래스의 생성자를 통해 보냈다.

2

함께보십시오.

+0

내 코드에서 볼 수 있듯이 이미 Add 함수를 사용하고 있습니다. –

+0

@StefanDunn : ... 표시하지 않는 'Form1'에서 ... –

1

그냥 현재의 폼에 컨트롤을 추가하려면, 프레드릭의 코드는 다음과 같이 올바른 :

var thisObj = new Label { Name = "One", Text = "Some Text" }; 
Controls.Add(thisObj); 

이 Form1이 자동으로 실행되지 않는 것이 정상입니다, 당신은 쇼() 메서드를 호출하지 않습니다. 새 라벨로 Form1을 표시 할 경우 이것은 코드 추가 :

var form = new Form1(); 
var thisObj = new Label { Name = "One", Text = "Some Text" }; 
form.Controls.Add(thisObj); 
form.Show(); 

파일 'Program.cs'에 정의되어 당신의 WindowsForms 응용 프로그램에서 기본적으로로드 할 양식 :

Application.Run(new Form1); 
관련 문제