Hallo
ich möchte per button alle textboxen und checkboxen einer groupbox einer tabpage auf einmal löschen. dazu habe ich mir als leeren sub folgendes zusammen gefriemelt:
Sub tabpage\_leeren()
Dim ctl As Object
Dim grp As Object
Dim abc As Object
Dim efg As Object
For Each grp In Me.Controls
If TypeOf grp Is TabControl Then
For Each ctl In grp.controls
If ctl.name = "TabPage1" Then
For Each abc In ctl.controls
If TypeOf abc Is GroupBox Then
For Each efg In abc.controls
If TypeOf efg Is TextBox Or TypeOf efg Is CheckBox Then
efg.text = ""
End If
If TypeOf efg Is CheckBox Then
efg.checked = False
End If
Next
End If
Next
End If
Next
End If
Next
End Sub
Was mich jetzt stört ist dass ich den namen der Tabpage hard reinschreiben muss. Jetzt wollte ich das sub soweit ändern dass der name der tabpage direkt aus dem button code an tabpage_leeren übergebn wird. leider schaff ich es nicht den aktuellen namen der aktiven tabpage zu ermitteln.
Frage also:
Was muss ich tun dass mir der name der aktuellen tabPage zurückgegeben wird?
mfg
Jens
Hallo
ich möchte per button alle textboxen und checkboxen einer
groupbox einer tabpage auf einmal löschen. dazu habe ich mir
als leeren sub folgendes zusammen gefriemelt:
Sub tabpage_leeren()
Dim ctl As Object
Dim grp As Object
Dim abc As Object
Dim efg As Object
For Each grp In Me.Controls
[…viele geschachtelte Schleifen später…]
Next
End Sub
Was mich jetzt stört ist dass ich den namen der Tabpage hard
reinschreiben muss. Jetzt wollte ich das sub soweit ändern
dass der name der tabpage direkt aus dem button code an
tabpage_leeren übergebn wird. leider schaff ich es nicht den
aktuellen namen der aktiven tabpage zu ermitteln.
Frage also:
Was muss ich tun dass mir der name der aktuellen tabPage
zurückgegeben wird?
mfg
Jens
Hallo!
Warum machst Du das Ganze nicht einfach rekursiv und übergibst die TabPage, deren TextBoxen/CheckBoxen gelöscht werden sollen?
Sowas in der Art (aus dem Kopf und in normalerweise gehasstem VB.NET):
private sub tabpage\_leeren(tp as TabPage)
controls\_leeren(tp.Controls)
end sub
private sub controls\_leeren(coll as Control.ControlCollection)
if (coll = nothing) then
return
end if
dim ctl as Control
for each ctl in coll
controls\_leeren(ctl.Controls)
' hier jetzt noch die TextBoxen leeren/CheckBoxen zurücksetzen
'...
next
end sub
Viel übersichtlicher und flexibler, da Du ja direkt die TabPage reinstopfen kannst, die bearbeitet werden soll, unabhängig vom Namen.
Gruß,
Martin
Danke schön 
Hat zwar etwas gedauert bis ich die anwendung gerafft habe aber jetzt funktionierts. War halt etwas schwieriger die aktuelle tabpage herauszufinden um sie zu übergeben aber jetzt funzt es.
gruss Jens