2016-06-28 2 views
0

2 개의 Windows Forms가 있습니다.Form2에 Form1에 몇 개의 그룹 상자가 있는지 보도록하는 방법은 무엇입니까?

Form1에는 그룹 상자 내에 체크 박스가 있습니다.

어느 체크 박스가리스트 박스 1로 옮겨 졌는지는 Form2입니다.

Form1에있는 그룹 상자의 수를 Form2 (으)로 볼 수있는 코드를 작성하려고합니다. 누군가 나에게 힌트를 줄 수 있습니까? 당신은 단지 그룹 상자의 수를 원하고 그래서

public int GroupBoxCount { get; set; } 

패스처럼 Form1의 공공 재산으로 노출

public void Test(params GroupBox[] groupboxes) 
     { 
      for(int i=0;**# of groupboxes in Form1**;i++) 
      { 
       var checkBoxes = groupboxes[i].Controls.OfType<CheckBox>(); 

       foreach(var checkBox in checkBoxes) 
       { 
        if(checkBox.Checked==true) 
        { 
         if(checkBox.Checked==true) 
         { 
          listBox1.Items.Add(checkBox.Text); 
         } 

         if(listBox1.Items.Count>0) 
         { 
          listBox1.SetSelected(0, true); 
         } 
        } 
       } 
      } 

답변

1

(Form1에)

form2.Populatelist(
        groupBox1, 
        groupBox2 
       ); 

(형식 2) Form2의 Form1 인스턴스는

과 같습니다.

당신은 심지어 그들이 tabControl1 내에됩니다를 Form1에 그룹 상자의 총 수를 얻을 수있는 방법이

for(int i=0; i < frm1.GroupBoxCount;i++) 
+0

처럼 액세스 할 수 있습니까? – user2521723

+0

@ user2521723, 컨트롤이있는 위치와 관계없이 수동으로 또는 프로그래밍 방식으로 응답에서 지적한대로 속성을 설정할 수 있습니다. 당신은 tabcontrols'controls' 컬렉션에서 그것을 얻을 수 있습니다. – Rahul

+0

폼에있는 모든 그룹 박스를 (얼마나 많은 탭이 있건 상관없이) 동적으로 찾으려고합니다. 나는 내가 증가하는 것을 사용하여 컨트롤을 세는 방법을 알고 있다고 생각하지만, Form1.Controls.OfType과 같은 문법이있다. () .Count ?? – user2521723

관련 문제