2012-05-02 3 views
0

나는 다음과 같은 목표를 가진 윈도우 폼 응용 프로그램을 만드는 오전 콤보 상자를 해당 텍스트 상자를 추가 (그리고 나서 몇 가지 일을했지만, 이것은 질문과 관련이 없습니다).동적으로

사용자가 텍스트 상자에 값을 입력하여 "n"제품을 구성하도록 지정하고 싶습니다. 이 값 n 변수를 설정하는 메서드를 호출하는 텍스트 상자에 대한 이벤트 처리기가 있습니다. 이 값 "n"은 루프 카운터로 사용되며, 무엇을 할 것인가 - 생성 할 상자 수에 대한 경계를 생성한다는 것입니다.

(동적으로 n에 따라), n 개의 (텍스트 상자/콤보 상자) 쌍을 양식에 추가하고 싶습니다. 마지막으로 생성 된 것 아래에 다른 (텍스트 상자/콤보 상자) 쌍을 추가 할 공간이 없으면 다른 열이 만들어야합니다.

n은 제한이 없지만 현실적으로 20을 초과 할 가능성은 거의 없습니다. 어떤 경우에도 이보다 많은 제품이있는 경우 처리 할 수 ​​있기를 바랍니다.

콤보 상자의 옵션은 런타임에 전달되는 문자열 목록에서 채워지지만이 Form 응용 프로그램의 인스턴스마다 상자 당 일관됩니다.

내가 이미지를 모의을 입력하려하지만 난 내가 다음과 같은 코드를 사용하여 상자의 숫자를 생성하는 방법을 이해하는 몇 가지 명성 포인트 :(

를 취득 할 때까지 스택 오버 플로우 나를 수있을뿐만 그 미세한 점은 나는에 붙어 있어요. 누군가가 도와 드릴까요?

감사합니다! 사전에 행의 수를 사용자에게 물어

`  private void Method1() 
     { 
      int boxes = Int32.Parse(NumProducts.Text); 
      for (int i = 0; i < boxes; i++) 
      { 
       TextBox tb = new TextBox(); 
       tb.Location = new System.Drawing.Point(40, i * 20); 
       tb.Name = "TextBoxName" + i.ToString(); 
       tb.Size = new System.Drawing.Size(184, 20); 
       tb.TabIndex = i + 2; 
       tb.Text = String.Empty; 
       panel1.Controls.Add(tb); 

      } 
     } 

     private void NumProducts_TextChanged(object sender, EventArgs e) 
     { 
      Method1(); 
     }` 

답변

0

나에게 소리가 DataGridView 인 경우 여기에서 더 나은 선택이 될 것입니다. DataGridViewTextBoxColumn을 첫 번째 열로 지정하고 두 번째 열의 DataGridViewComboBoxColumn을 사용하여 구성 할 수 있습니다. 마지막 항목으로 "새 행"을 지원합니다.

문서 읽기. 양식에 하나를 버리고 그걸 가지고 놀아 라.

+0

답변 해 주셔서 감사합니다. 당신이 말한대로 DataGridView를 찾았고 사용자 입력 값에서 행을 만들었습니다. 그런 다음 게시물을 읽었을 때 테이블의 마지막 행에 다른 값을 입력하자마자 실현되었습니다. "새로운"행. 그냥 나를 생각하는 것 이상으로 생각합니다! –

+0

죄송합니다. DGV를 사용하면 사용자가 직접 지정할 필요없이 원하는만큼 항목을 추가 할 수 있습니다. 바로 이런 종류의 기능을위한 UI 메커니즘으로 DGV를 선택하게 된 이유입니다. – Tergiver

0

사용성 관점에서 매우 좋지 않다.

사용자가 뭔가를 입력 할 때 활성화되는 "새 행"행 (빈 행이 저장되지 않음) 또는 "새로운 행"버튼.

+0

좋은 지적! 감사! 데이터 격자보기가 이미 이것을 수행합니다. –

0

레이아웃을 얻으려면 FlowLayoutPanel 컨트롤을 사용하고 이미 수행 한 것처럼 패널 대신 컨트롤을이 컨트롤에 추가하십시오. 투명하게 열 문제를 처리하고 예상되는 최대 편집 상자 수를 넘으면 스크롤 막대를 추가해야합니다. FlowLayoutPanel here에 대한 일반 정보 (기타 여러 정보)

+0

스크롤 막대는 내 마음을 미끄러 져 믿을 수 없습니다. 됐어, 고마워! –