2016-08-15 4 views
0

두 개의 그룹 상자가 있고 각 그룹 상자에 9 개의 체크 박스가있는 양식이 있습니다. 사용자가 다른 확인란을 선택하고 단추를 누르면 해당 확인란의 데이터가 레이블이나 텍스트 상자와 같은 제안의 새 양식에 표시됩니다. 나는 다른 그룹과 함께 시도했지만, 두 그룹 모두에서 모든 체크 박스를 선택할 수 있기 때문에 긴 코드가됩니다. 코드 또는 제안을 도와주십시오. 이미지는 여기에 있습니다 1새 양식 VB.Net에서 여러 그룹의 여러 확인란 데이터를 표시하는 방법?

답변

0

이 코드는 그룹 상자의 각 확인란을 반복합니다.

For Each ctl In Me.GroupBox1.Controls.OfType(Of CheckBox)() 
     If ctl.Checked Then 
      'Access whatever data you need to populate your new form 
      'I'd recommend using the .Tag property to store custom info 
     End If 
Next 
0

전체 코드 :이 확인란의 태그를 가져 와서 선택한 제어로 출력

:

Public Sub getcheck(ByVal ctrl As Control) 
    ctrl.Text = "" 
    For Each ctl In Me.GroupBox1.Controls.OfType(Of CheckBox)() 
     If ctl.Checked Then 
      ctrl.Text &= ctl.Tag & ", " 
     End If 
    Next 
    For Each ctl In Me.GroupBox2.Controls.OfType(Of CheckBox)() 
     If ctl.Checked Then 
      ctrl.Text &= ctl.Tag & ", " 
     End If 
    Next 
    ctrl.Text = ctrl.Text.Substring(0, ctrl.Text.Length - 2) 
End Sub 

사용법 : getcheck(Control)

예 : getcheck(Label1)가의 태그 소요 선택한 체크 박스를 선택하여 Label1

에 씁니다.

CheckBox1.Tag = "Red" 
    CheckBox2.Tag = "Olive Green" 
    CheckBox3.Tag = "Gray" 

아니면 그냥이와 체크 체크 박스의 텍스트를 얻을 :

Public Sub getcheck(ByVal ctrl As Control) 
    ctrl.Text = "" 
    For Each ctl In Me.GroupBox1.Controls.OfType(Of CheckBox)() 
     If ctl.Checked Then 
      ctrl.Text &= ctl.Text & ", " 
     End If 
    Next 
    For Each ctl In Me.GroupBox2.Controls.OfType(Of CheckBox)() 
     If ctl.Checked Then 
      ctrl.Text &= ctl.Text & ", " 
     End If 
    Next 
    ctrl.Text = ctrl.Text.Substring(0, ctrl.Text.Length - 2) 
End Sub 

그냥 함께 체크 박스의 탭을 설정

관련 문제