Hello. I have been developing on this project for the last month and this particular function is used MANY MANY times throughout the project and I have had 0 problems with it to date. I added a new panel and all of a sudden some of my core feautres started throwing Null Exceptions or even Overflowing a dll (apparently from infinate loops?) I do not see how this is even relevent and nothing has changed in the code that is no longer working.... please advise

Public Function GetControlById(ByVal ParentCntrl As Control, ByVal TargetCntrl As String) As Control
                Dim ctl As Control = ParentCntrl
                Dim ctls As New LinkedList(Of Control)
                While Not ctl.Equals(Nothing)
                    If ctl.ID = TargetCntrl Then
                        Return ctl
                    End If
                    For Each child As Control In ctl.Controls
                        If child.ID = TargetCntrl Then
                            Return child
                        End If
                        If child.HasControls Then
                        End If

                    If Not ctls.First.Value.ClientID = Nothing Then
                        ctl = ctls.First.Value
                    End If

                End While
                Return Nothing
            Catch ex As Exception

            End Try

This is the function I am using to find a control.

Dim ID As String = CType(invf.GetControlById(pnlComputerDetailsView, "lblComputerIdDetail"), Label).Text

            Dim AssignedTo As String = CType(invf.GetControlById(pnlComputerDetailsView, "lblComputerAssignmentDetail"), Label).Text

The first line works fine...the second line will throw a null exeption. I do not know why. The lblComputerAssignmentDetail is created and populated at the time this is called. >< CODE HEADACHE. Please advise