vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

In diesem Forum haben Sie die Möglichkeit Kommentare, Fragen und Verbesserungsvorschläge zu den im vb@rchiv gelisteten Tipps und Workshops zu posten.

Hinweis:
Ein neues Thema kann immer nur über die jeweilige Tipps & Tricks bzw. Workshop Seite eröffnet werden!

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fragen zu Tipps & Tricks und Workshops im vb@rchiv
Tipp 2496: Mit einem Klick alle offenen Fenster schließen 
Autor: Manfred X
 Tipp anzeigenDatum: 22.05.19 17:26

Hallo!

Falls sich jemand für die Net-Konzepte zu diesem Thema interessiert .....
(frmXXXX ist ein Windows.Forms.Formular)
Public Class frmXXXX
 
    'Interne Demoform 
    Friend Class form1
        Inherits System.Windows.Forms.Form
 
        Private Sub form1_Load(sender As Object, e As EventArgs) Handles Me.Load
            Me.Size = New Size(350, 200)
            Me.ShowInTaskbar = False
            Me.StartPosition = FormStartPosition.Manual
        End Sub
    End Class
 
 
    'Buttons zum Erstellen und Schließen von untergeordneten Formularen
    Dim WithEvents btnOpen As New Button With
        {.Parent = Me, .Left = 10, .Width = 150, .Text = "Open"}
 
    Dim WithEvents btnClose As New Button With
        {.Parent = Me, .Left = 10, .Width = 150, .Text = "Close", .Top = 50}
 
    'Liste der unterg. Formulare
    Dim frmList As New List(Of form1)
 
 
    Private Sub btnOpen_Click(sender As Object, _
        e As EventArgs) Handles btnOpen.Click
 
        'Neues Formular an Liste anhängen
        frmList.Add(New form1)
 
        Dim i As Integer = frmList.Count - 1
 
        With frmList(i)
            AddHandler .Closed, AddressOf SubFormClosed
 
            .Show()
 
            If i = 0 Then
                .Location = New Point(Me.Left + 200, Me.Top + 30)
            Else
                .Location = _
                New Point(frmList(i - 1).Left + 30, frmList(i - 1).Top + 30)
            End If
            .Text = "Listindex: " & i.ToString & " beim Erstellen"
            .Owner = Me
        End With
    End Sub
 
 
    Private Sub SubFormClosed(sender As Object, e As EventArgs)
        'Referenz auf geschlossenes Formular aus der Liste entfernen
        frmList.Remove(DirectCast(sender, form1))
    End Sub
 
 
    Private Sub btn_Click(sender As Object, e As EventArgs) Handles _
      btnClose.Click
        'alle aktuell gelisteten Formulare schließen
        For i As Integer = frmList.Count - 1 To 0 Step -1
            frmList(i).Close()
        Next i
    End Sub
 
End Class
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mit einem Klick alle offenen Fenster schließen 
Autor: Kuno60
Datum: 23.05.19 23:35

Geht auch einfacher, wenn das Anwendungsframework aktiviert ist:

For Each f As Form In My.Application.OpenForms
   If f IsNot Me Then f.Close()
Next
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mit einem Klick alle offenen Fenster schließen 
Autor: Manfred X
Datum: 24.05.19 03:38

Hallo!

Dann werden alle offenen Unter-Formulare geschlossen.

So wie das Thema formuliert worden ist, soll eine
bestimmte Gruppe von "Werkzeug"-Formularen per Button
geschlossen werden können.
Dafür wird entweder eine entsprechende Referenz-Liste benötigt
oder ein Filter beim Durchlauf der Openforms-Liste,
durch den nur Werkzeug-Formulartypen geschlossen werden
(falls diese sich durch den Klassentyp oder durch eine geeignete
Property von anderen geöffneten Formularen abgrenzen lassen.)
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um einen neuen Beitrag schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel