Возвратный цикл через компоненты, не работающие в VB - PullRequest
1 голос
/ 28 апреля 2011

Я пытаюсь рекурсивно перебрать компоненты в окне, но оно никогда не проходит через окно к своим подкомпонентамЧто я делаю не так?

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 Ответ

0 голосов
/ 28 апреля 2011

Не уверен, почему вы начинаете с компонента, а не с элемента управления, но если вы можете начать с элемента управления (например, формы), вы можете

попробовать

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...