2011-10-04 8 views
0

동적 텍스트 상자를 만들려면 코드를 작성하려고합니다.두 번째 형식으로 동적 텍스트 상자 만들기

나는 기능 클래스가 명명 내 프로그램에서 두 번째 폼을 ProductForm.cs

내가 할 내 Function.csGetSpecs라는 기능을 내가에서 함수를 호출 할 GetSpecs 내부보다 일부 데이터를 읽는 것입니다 싶어 무엇 다른 클래스와 ProductForm.cs 클래스 내 다른 함수에 데이터를 보냅니다.

끝에 빈 양식이 표시됩니다.

GetSpecs 기능의 일부 :

private String GetSpecs(String webData) 
{ 
    ...... 
    ProductForm form2 = new ProductForm(); 
    form2.CreateTextBox(n); 
} 

ProductForm.cs

public void CreateTextBox(int i) 
    { 
     ProductForm form2 = new ProductForm(); 
     form2.Visible = true; 
     form2.Activate(); 

     int x = 10; 
     int y = 10; 
     int width = 100; 
     int height = 20; 

     for (int n = 0; n < i; n++) 
     { 
      for (int row = 0; row < 4; row++) 
      { 
       String name = "txtBox_" + row.ToString(); 
       TextBox tb = new TextBox(); 
       tb.Name = name; 

       tb.Location = new Point(x, y); 
       tb.Height = height; 
       tb.Width = width + row * 2; 
       x += 25 + row * 2; 
       this.Controls.Add(tb); 

      } 
      y += 25; 

     } 

    } 

나는 ProductForm의 빈 양식을 얻을. 텍스트 상자가 만들어지지 않았거나 볼 수 없습니다.

것은 내가

private void ProductForm_Load(object sender, EventArgs e) 

내가 텍스트 상자를 볼 수 있습니다 내부에 텍스트 상자를 넣어합니다.

답변

2

당신은 현재 양식에 컨트롤을 추가 : this.Controls.Add(tb);, 당신은 다른 형태에 추가해야합니다

form2.Controls.Add(tb); 
+0

많은 감사. 그래 네가 맞아. 그것은 지금 일하는 내 문제를 해결! –

3

새로운 ProductForm 인스턴스 (form2 변수)를 표시 한 다음 this (표시되지 않음)에 컨트롤을 추가하는 중입니다.

+0

일 - 폼의 다른 인스턴스를해야합니다. BTW, 다른 UI 구성 요소에서 UI 구성 요소를 사용하는 것이 좋지 않습니다. 커플 링이 생성됩니다. @Val : MVC에서 읽습니다. – bryanmac

+0

여러분 모두에게 많은 감사드립니다. 너는 그것을 아주 잘 설명했다. 이 오류를 보지 않는 것이 나쁘지 않습니다. 당신은 내 친구들의 모든 영웅입니다. –

관련 문제