Typ als Parameterübergabe funktioniert nicht.

BeEm

Grünschnabel
Hallo,

ich stehe heute vor dem folgendem Problem:

Ich möchte einer Funktion einen Typ übergeben. In der Funktion möchte Ihn verwenden um z.B. zu überprüfen ob das aktuelle Control eine CheckBox ist.
Leider setzt VS2008 unter Target ein blaue Linie und sagt mir:
Der Typ "Target" ist nicht definiert.

Wäre für jeden Denkanstoss dankbar

Code:
Sub GetControls(ByRef CurControl As Control, ByVal Target As Type)
        For Level As Integer = 0 To CurControl.Controls.Count - 1
            If TypeOf CurControl.Controls(Level) Is Target Then
                System.Diagnostics.Debug.WriteLine(CurControl.ClientID & " -> " & CurControl.Controls(Level).ID)
                If Me.ClientID = CurControl.Parent.Parent.Parent.Parent.Parent.Parent.Parent.ClientID Then
                    Dim CB As CheckBox = CurControl.Controls(Level)
                    Dim CBs As New List(Of CheckBox)
                End If
            End If
            If CurControl.HasControls() Then
                GetControls(CurControl.Controls(Level), Target)
            End If
        Next
    End Sub

mfg BeEM
 
das problem "ByVal Target As Type"
Hier bei ist Target ein Objekt vom Typ Type
Das heißt du musst von deinem Control ebenfalls den Typen abfragen.
Und vergleichst diese beiden Objekte.

Code:
If CurControl.Controls(Level).GetType() == Target Then
(Hoffe ma Code stimmt, e nicht in VB)
 
Hallo Spyke,

vielen dank für deine Hilfe. Es hat funktioniert.
Hier nochmal der richtige VB-Code.

Code:
Sub GetControls(ByRef CurControl As Control, ByVal Target As Type)
    For Level As Integer = 0 To CurControl.Controls.Count - 1
        If CurControl.Controls(Level).GetType() Is Target Then

            ...
            ...
            ...

        End If
        If CurControl.HasControls() Then
            GetControls(CurControl.Controls(Level), Target)
        End If
    Next
End Sub

gruß BeEm
 

Neue Beiträge

Zurück