#vb.net #loops #recursion
#vb.net #циклы #рекурсия
Вопрос:
Я пытаюсь рекурсивно перебирать компоненты в окне, но он никогда не переходит от окна к его подкомпонентам. Что я делаю не так?
Public Sub fixUIIn(ByRef comp As System.ComponentModel.Component, ByVal style As SByte)
Debug.WriteLine(comp)
If TypeOf comp Is System.Windows.Forms.ContainerControl Then
Dim c As System.Windows.Forms.ContainerControl
c = comp
c.BackColor = getColor(style, PART_BACK)
c.ForeColor = getColor(style, PART_TEXT)
If ((comp.Container IsNot Nothing) AndAlso (comp.Container.Components IsNot Nothing)) Then
For i As Integer = 0 To comp.Container.Components.Count() Step 1
fixUIIn(comp.Container.Components.Item(i), style)
Next
End If
comp = c
End If
End Sub
Ответ №1:
Не уверен, почему вы начинаете с компонента, а не элемента управления, но если вы можете начать с элемента управления (например, формы), вы можете
попробуйте
Public Sub fixUIIn(ByRef comp As System.Windows.Forms.Control ByVal style As SByte)
Debug.WriteLine(comp)
comp.BackColor = getColor(style, PART_BACK)
comp.ForeColor = getColor(style, PART_TEXT)
If (comp.Controls IsNot Nothing) Then
For i As Integer = 0 To comp.Controls.Count()
fixUIIn(comp.Controls.Item(i), style)
Next
End If
End Sub
Комментарии:
1. Спасибо… Я реализую это, как только я получу Visual Studio GUI Builder, чтобы не дать сбой