Laden...

Forms-Anwendung mit mehreren Fenster. Wie am besten anzeigen?

Erstellt von cptjmiller vor 15 Jahren Letzter Beitrag vor 15 Jahren 944 Views
C
cptjmiller Themenstarter:in
93 Beiträge seit 2007
vor 15 Jahren
Forms-Anwendung mit mehreren Fenster. Wie am besten anzeigen?

Hallo...

hab eine kurze "designtechnische" Frage zu einer Anwendung, die ich derzeit erstelle...

Die Anwendung besteht aus einem Hauptfenster, zu dem bei bestimmten Ereignissen zusätzliche Fenster eingeblendet werden sollen (z.B. eine Suche, eine zusätzliche Anzeige...)...

Frage nun: Wie löse ich das am besten... Habs nun schon mit folgenden Varianten gemacht:

  • über Panels, die ich zu besagtem Zeitpunkt mit visible = true anzeige und dann wieder ausblende
    VT: Hauptfenster wird nicht gesperrt
    NT: alle Panels müssen in VisualStudio auf der Hauptform platziert werden, was langsam unübersichtlich wird

  • über weitere Forms und dann ShowDialog()
    VT: besser aufgeteilt
    NT: Wie halte ich das Hauptfenster für Eingaben aktiv?
    Hab das mal wie folgt versucht:


Form2 additForm = new Form2();
this.AddOwnedForm(additForm);
additForm.Show();

Ist das so korrekter Standard oder wie würdet ihr das lösen?

Um das ganze ein wenig besser vorstellbar zu machen, was ich genau meine...
Z.B. die Suchfunktion in Visual Studio, die ein "Forms" im Vordergrund öffnet, das global für die QuellcodeAnsicht im Hintergrund verwendet werden kann, dieser Editor im Hintergrund aber ständig aktiv bleibt.

J
3.331 Beiträge seit 2006
vor 15 Jahren

Mit der DockPanel Suite arbeitet auch die IDE von #D.

Jürgen

C
cptjmiller Themenstarter:in
93 Beiträge seit 2007
vor 15 Jahren

Nun ja, eine Fremd-Komponente DAFÜR zu benutzen, ist mir dann doch etwas zu overkilled

68 Beiträge seit 2008
vor 15 Jahren

Hallo,

  • über Panels, die ich zu besagtem Zeitpunkt mit visible = true anzeige und dann wieder ausblende
    VT: Hauptfenster wird nicht gesperrt
    NT: alle Panels müssen in VisualStudio auf der Hauptform platziert werden, was langsam unübersichtlich wird

Den Nachteil könntest du nach meinem derzeitigen Kenntnisstand ausgleichen, wenn du die Panels in Usercontrols verpackst, und dann jeweils auf dem Form anzeigst.
Das würde die Übersichtlichkeit ebenfalls erhöhen.

Locutus

====================================
1001011010101010101101110101111000101010101010
Ich assimilier dich...
Und dich auch...
Ich mein's ernst!

P
48 Beiträge seit 2008
vor 15 Jahren

Hallo cptjmiller,

also wenn ich dich richtig verstanden habe, willst du eigentlich nur von deinem Hauptfenster aus ein "Unterfenster" öffnen, sodass dies sichtbar ist, aber dein Hauptfenster soll weiterhin aktiv bleiben ....

dann versuch mal nur "Show" statts "ShowDialog".
Wenn du dann willst, dass das "Unterfenster" noch sichtbar ist, auch wenn die Hauptform aktiv ist (wie zb bei der Suchfunktion in Visual Studio) dann musst du im "Unterfenster "das Property "TopMost" auf "true" setzen.

Grüße,

Psy

5.299 Beiträge seit 2008
vor 15 Jahren

Hi!

Meine Lieblingsvariante für sowas ist ein TabControl (s. Vorüberlegung zur Form2Form-Kommunikation: Programm-Design überdenken). Das ist auch in der IDE immer schön übersichtlich zu designen, und wohl am einfachsten zu implementieren.
Allerdings siehste damit _entweder _die Eingabe, _oder _das Ergebnis.
So superschicke Features wie die VS-Suche, die dann auch noch beiseite-rückt, wenn der Treffer hinter die Such-Eingabe zu liegen kommt - ja, das ist eine schöne Aufgabe, dazu, in Fortsetzung von psy, die erste FAQ von MyC#, nur so zum Einstieg 😉

Der frühe Apfel fängt den Wurm.

C
cptjmiller Themenstarter:in
93 Beiträge seit 2007
vor 15 Jahren

Danke Euch Leute, vielen Dank.

Habs nun per "Show()" realisiert, das funktioniert...
Und diese Top-Most-Geschichte werde ich auch noch mit einbauen, das gefällt mir...

Danke!