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
Try
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
ctls.AddLast(child)
End If
Next
If Not ctls.First.Value.ClientID = Nothing Then
ctl = ctls.First.Value
ctls.Remove(ctl)
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