Announcement

Collapse
No announcement yet.

schließen aller forms

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • schließen aller forms

    Hi
    ich habe gerade das Problem das ich eine mögliche Menge an Forms über ihren Namen identifizieren möchte und dann schließen will. mein Ansatz war:
    Code:
    For Each obj As Form In My.Application.OpenForms
          If obj.Name.Substring(0, 2) = "z_" And obj.Name <> "z_dosMain" Then
                    obj.Close()
          End If
    Next
    das ganze funktioniert in sofern das er alle die nicht mit Z_ anfangen ingnoriert und auch mein Mainfenster (das wo das ganze im FormClosing steht)
    offen läßt. nun findet er das erste betreffende Form und schließt es auch, allerding ändert sich damit seine Index-Menge in der FormsCollection und er streikt den nächsten Schleifen durchlauf zu starten.

    wie kann man das lösen?

    nachtrag, mit MDI kann ich nicht arbeiten da sie nicht in einem Container laufen da das auslösende form schon in einem MDI liegt
    Ich hab keine Ahnung was ich tue aber ich will es lernen

  • #2
    Verwende eine rückwärtszählende for i schleife Also vom Array Ende bis zum Array Anfang. Rückwärts deswegen weil es dann auch nichts ausmacht wenn Du mal ein Element entfernst.

    ForEach benutzt einen Enumerator und damit dieser korrekt arbeiten kann darf sich die Collection darunter nicht verändern

    Comment

    Working...
    X