2016-09-02 4 views
2

Доброго утра Я хочу спросить что-то, что связанно с флажками я должен группами флажков и это выглядитНабор галочки на основе флажка в GroupBox

enter image description here

Мой вопрос Как могу ли я установить флажок Purchase Requisition всякий раз, когда я устанавливаю флажок в группе Purchase Requisition, и если все они снижаются, тогда флажок Purchase Requisition не установлен.

У меня есть этот код, и я поставил этот код на всем флажок внутри Groupbox Purchase Requisition

Sub check_Purchase_Req() 
     Dim oCtl As Control 
     Dim iX As Integer 

     For Each oCtl In GroupBox3.Controls 
      If TypeName(oCtl) = "CheckBox" And oCtl.Enabled = True Then iX = iX + 1 

      If iX > 0 Then 
       CheckBox1.Checked = True 

      ElseIf CheckBox19.Checked = False And CheckBox20.Checked = False And CheckBox21.Checked = False And CheckBox22.Checked = False And CheckBox23.Checked = False Then 

       CheckBox1.Checked = False 
       Exit For 
      End If 
     Next 
    End Sub 

но этот код оленьей кожи удовлетворить то, что мне нужно

Любой помощи приветствуется TYSM

+0

Что это за CheckBox19 ~ 23, этот флажок из Реквизиции? – FrozenFire

+0

yes sir thats true, я имею в виду правильный –

+0

Отметьте мой ответ и дайте мне знать, если это работает. Однако не проверял. –

ответ

1

Здесь , Checkbox1 to Checkbox5 является предполагаемым именем флажка в поле Purchase Requisition.

chkPurchaseRequisition также Checkbox для покупки реквизиция флажком

Попробуйте это:

Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles _ 
CheckBox1.CheckedChanged, CheckBox2.CheckedChanged, CheckBox3.CheckedChanged, CheckBox4.CheckedChanged, CheckBox5.CheckedChanged 
    If sender.Checked = True Then 
     chkPurchaseRequisition.Checked = True 
    Else 
     Dim AllUnchecked As Boolean = True 
     For Each c As Control In grpboxPurchaseRequisition.Controls.OfType(Of CheckBox)() 
      If DirectCast(c, CheckBox).Checked = True Then 
       AllUnchecked = False 
       Exit For 
      End If 
     Next 
     If AllUnchecked = True Then 
      chkPurchaseRequisition.Checked = False 
     End If 
    End If 

End Sub 
+0

TYSM sir <3 Действительно отличная помощь –

+0

Без проблем! Счастливое кодирование! –

+0

Спасибо, что так много: D –

2

Использование LINQ для таких задач, делает жизнь проще:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    GroupBox1.Controls.OfType(Of CheckBox).ToList() _ 
      .ForEach(Sub(c) AddHandler c.CheckedChanged, AddressOf CheckChanged) 
End Sub 
Private Sub CheckChanged(sender As Object, e As EventArgs) 
    CheckBox1.Checked = GroupBox1.Controls.OfType(Of CheckBox).Any(Function(c) c.Checked) 
End Sub 

В коде выше, я предположительно GroupBox1 является правильным, а CheckBox1 - это тот, который вы хотите проверить или снять на отметке CheckBox Элементы управления GroupBox1.

+0

TYSM за помощь +1 –

+0

Это должен быть ответ. Приятное использование Linq кстати. – Codexer

+1

@ Zaggler Спасибо за отзыв :) –

Смежные вопросы