C# Mehere "Formen" in einer Form öffnen

logiz4

Cadet 3rd Year
Registriert
Sep. 2008
Beiträge
46
Hallo zusammen,
hab bei meinem Projekt ein Problem: Ich habe eine Menü-Form bei der ich auswählen kann ob ich entweder Winamp steuern oder etwas über Vlc axVlcplugin1 bzw. 2) anschauen will. Läuft auch alles ganz super in 2 extra Formen. Doch jetzt zum eigenlichen Problem, ich will das ganze in einer Form realisieren, mit Menü usw..

Ich hätte vielleicht einen Lösungsweg: das ganze in einer Form machen und mit Controlpannels... Wäre aber nicht das was ich wollte und auf jeden Fall im Designer unübersichtlich. TabControl würde ... aussechen

Bitte keine Antworten mit : "benutze doch google" oder "wozu gibt des eine SUFU".
Denn beide Orakel hab ich schon befragt, warscheinlich mit den falschen Fragen.

Wäre dankbar über Vorschläge bezüglich Code oder nach Stichworten mit dennen ich meine Suche beginnen kann.

MfG logiz4
 
Entweder erstellst du eine Komponente und fügst diese als Control zu deinem Container zu oder du nimmst einen MDI fähigen Projekt, das Child/Parent Fenster "unterstützt". An sich ist das nichts anderes als Windows Forms, aber halt begrenzter. Du kannst ein neues Fenster aufmachen und diesen als Child des Hauptfenster angeben.
 
Hier mal der screenshot... ich musste die Version ohne Vlc benutzen... hab nebenher noch was geändert... :)

Programm.jpg
 
Da kann man doch Panles benutzen.
 
godofkills schrieb:
Da kann man doch Panles benutzen.
jop würde aber wie in meiner fragestellung steht bescheiden aussehen :( oder welche Pannels meinst du?
Aber trotzdem danke :) für die bisherigen Antworten
 
logiz4 schrieb:
jop würde aber wie in meiner fragestellung steht bescheiden aussehen :( oder welche Pannels meinst du?
Aber trotzdem danke :) für die bisherigen Antworten

Ah sry. Das hab ich glatt überlesen.
 
also hab mir mal des mit dem MDI angeschaut, des is leider :( nicht das ich gesucht habe. Ich will das eher so machen wie mit den Pannels blos ohne Panels, des soll so aussehen wie z.B. beim Installieren von Software... man klickt auf weiter und es kommt kein neues fenster, sondern des bleibt in einem.
Besser kann ich des grad nicht erklären was ich will.
 
Wir wäre es wenn du die nen TabControl erstellts und dann als Reiter halt die Bezeichnung der jeweiligen Anwendungen.
Das dürfte das ganze übersichtlich gestallten und du kannst das (wenn ich richtig verstanden habe was du willst) realisieren. Außerdem wird es leicht erweiterbar sein.
 
Wie schon gesagt ein TabControl wäre die beste Lösung.
Falls dir das Tab-Layout nicht gefällt kannst du auch einfach die "Appearance" Eigenschaft auf "Buttons" stellen, dann hast du statt Tabs eben Buttons ;)
 
logiz4 schrieb:
also hab mir mal des mit dem MDI angeschaut, des is leider :( nicht das ich gesucht habe. Ich will das eher so machen wie mit den Pannels blos ohne Panels, des soll so aussehen wie z.B. beim Installieren von Software... man klickt auf weiter und es kommt kein neues fenster, sondern des bleibt in einem.

Ich würde auch zu Panels raten. D.h. du hast ein Hauptfenster, dass nur einen Kopf oder so enthält und nichts weiter macht, als ein Panel anzuzeigen. Die Panels kannst du dann einzeln bauen und werden dann in deinem Hauptfenster geladen.

Alternativ und ein wenig dirty, könntest du die Fenster alle gleich groß machen und z.B. beim "Weiter" klicken das aktuelle verschwinden und das nächste an der gleichen Position anzeigen lassen. Aber wie gesagt, das ist eher nicht so schön.
 
Also danke an Alle. Ich wed des dan mit Pannels machen, da bleibt mir noch eine Frage wie kann ich die Karteikartenansicht verschwinden lassen, so dass nur die Pages zu sehen sind wenn ich die mit dem jeweiligen Button auswähle?
 
Du könntest mit einem UserControl die einzelnen Panels designen und bei jedem Buttonklick wird das jeweilige UserControl mit dem dazugehörogen Panel ins Hauptfenster geladen. Dazu brauchst du nur eine Methode, die das Hauptfenster vom aktuellen Panel "befreit" und eine Methode, die ein Panel lädt.
 
Ich hab keine Ahnung, ob C# das unterstützt, aber in Delphi benutz ich je nach Aufgabe folgende Methoden:
1) Das schon angesprochene PageControl mit unsichtbaren Tabs
2) Panels, die alle übereinander liegen und bei Bedarf (un)suchtbargeschaltet werden
3) Panels, die alle auf einem Extra Formular liegen, das unsichtbar created wird, dann dem Panel ein Neues Parent (das Hauptfenster) zugewiesen wird etc.
4) Wizzards aus Windows selber
 
Also hab das jetzt mit Pannels gelöst, die ich einfach größer gemacht habe als das Fenster... und tata dann sieht das nach einem ganz normalen Fenster aus :D, dann noch .Show() und .Hide(). Bis jetzt sieht das so aus: Anlage.
 

Anhänge

  • wau.PNG
    wau.PNG
    17,3 KB · Aufrufe: 289
  • wau2.PNG
    wau2.PNG
    25 KB · Aufrufe: 272
  • Wau3.PNG
    Wau3.PNG
    19,3 KB · Aufrufe: 269
musst du garnicht show hide machen. es gibt einen Z-Index bei den Controls. du kannst den Control einfach im Z-Index verschieben und hast den anderen im Vordergrund!
 

Ähnliche Themen

Zurück
Oben