Form als Desktop

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von counistrike.

    Form als Desktop

    Na ein Wunderschönen abend ! , :) Ich würde gerne mir einen Taskbar erstellen der beim minimieren von Forms in Taskbar dedockt werden wie die Windows taskleiste mit dem laufenden fenstern .

    Also ich will einen Virtuelen Desktop erstellen und für ein Ersatz von Shell / explorer.exe ( in Registry der Shell explorer.exe ) also algemein selbst erstelten desktop da ich nicht so viele funktionen von explorer nutze will ich mein eigenen Desktop erstellen .

    (Hauptthema)
    wie kann ich taskleiste also Taskbar für meine Forms erstellen die im Hauptform geöffnet werden ?

    Also nur beim Minimieren an bsp Tollstrip oder so andocken .

    Danke für eure aufmerksamkeit . PS : Ich Endschuldige mich für mein Deusch da ich seid 3 Jahren fest in Deuschland lebe und noch Schüler bin . :)
    Ich glaube ich weis was du meinst, es ist möglich die Form auf den ganzen Bildschirm zu platzieren und per Topmost kann man diese dann immer in den Vordergrund halten.

    Beispiel:

    VB.NET-Quellcode

    1. Private Sub Formload() Handles MyBase.Load
    2. Me.Topmost = True 'Form immer im Vordergrund halten
    3. Me.BorderStyle = BorderStyle.None 'Rand der Form entfernen
    4. End Sub


    Wenn du das hast, dann kannst du eigene Formen auf dieser Form platzieren, oder eine ganz andere Idee wäre, dass du einen eigenen Parser für formen machst.
    Ich hab mal kurz eine Beispielanwendung dafür geschrieben... (ich hoffe Mal, dass ich dich in deinem Eröffnungspost richtig verstanden habe :D )

    Das ganze Funktioniert so, dass du eine Hauptform hast (Form1), welche maximiert und größtenteils durchsichtig ist, abgesehen von der Taskleiste, welche sich unten am Rand befindet.
    Es werden auch direkt zwei weitere Formen erzeugt, welche sich nur innerhalb der Hauptform bewegen können.
    Wird eine dieser Formen minimiert, erscheint in der programmeigenen Taskleiste ein Panel, welches links das entsprechende Icon, und rechts daneben den Text des zugehörigen Fensters zeigt.
    Durch einen Klick auf das Panel erscheint wieder die Form, und der Eintrag in der Taskleiste verschwindet.

    Solche Sachen wie Design etc. musst du natürlich selbst anpassen, das Projekt ist eben nur eine Beispielanwendung.

    So wie ich das gelöst habe, ist es eher (zumindest teilweise) unsauber und dirty gecodet, besser wäre es zB. für die Fenster eine eigene Klasse zu schreiben, in der von der Forms.Form-Klasse geerbt wird, bzw. noch ein anderer Lösungsansatz wäre, alle Fenster nicht als Unterelemente der Hauptform, sondern als eigenständige Formen zu verwenden, und dann eben beim Minimieren einen entsprechenden Eintrag der Taskleiste hinzuzufügen.

    Aber es geht generell eher ums Verstehen, wie man etwas Bestimmtes bewerkstelligen kann.
    In meiner Beispielsanwendung siehst du, wie soetwas grundsätzlich verwirklicht werden könnte.
    Falls du Fragen hast, frag ruhig nochmal nach. Wir helfen hier gerne ;)
    Dateien
    • UserTaskbar.zip

      (137,08 kB, 169 mal heruntergeladen, zuletzt: )
    Wie gesagt, das Programm oben ist eine Beispielanwendung;

    Kai Weigelt schrieb:

    besser wäre es zB. für die Fenster eine eigene Klasse zu schreiben, in der von der Forms.Form-Klasse geerbt wird

    Wenn du ein eigenes Control erstellst, welches eine Form ist und den Code aus der Form2 beinhaltet, kannst du soviele zusätzliche Formen wie du möchtest erstellen, ohne den Code überall reinpasten zu müssen ;)