Anzeige

 Forminhalt durch Menüklick ändern bzw. wechseln


#1
Hallo, ich bin am Lernen mit .NET bzw. C# zu programmieren. Ich schaue im Youtube Tutorialvideos öfter und lese auch hier nach Fehllösungen.

Nur ein Problem habe ich und zwar ich konnte keine Lösungen oder Tutorials finden, weil ich denke, ich weiß nicht wie es so heisst, wonach ich suche.

Also oft habe ich es gesehen, wenn man auf Button oder Menü klickt, kommt typisch neues Fenster bzw. Form. So möchte ich es nicht. Ich möchte so programmieren, wenn man oben auf Menü in einem Formfenster klickt so z.B. Bearbeiten -> XY

Dann ändert den Forminhalt sich bzw. da im Inhalt wird zu einer XY gewechselt. So wenn man wieder auf Menü klickt so Bearbeiten -> XX

Dann wird diesen Inhalt von XY zu XX in einem Formfenster gewechselt ohne neues Formfenster rauszuerscheinen.

Ich hoffe ihr versteht mich, wonach ich suche und was ich meine. Und wie heisst solche Funktion? Vielen Dank für eure zukünftige Hilfe und Tipps.
 

Halfbax

Erfahrenes Mitglied
#2
Hallo @Birnenkopf ,
das du dir Videos anguckst freut mich. Videos helfen ungemein!

Nach dem was du suchst handelt es sich um ein Objekt welches mit Tabs arbeitet, je nach Framework (z.B WPF oder Windows.Forms) nennt es sich anders. Dieses Objekt könntest du mit einem Menubar Objekt kombinieren.

WPF:
Windows.Forms

Ich hoffe, ich kann dir damit helfen. Falls noch Fragen offen sind melde dich. Außerdem schließe bitte den Thread sofern er gelöst ist :).

P.S Ich habe erst im nachhinein geleses, dass dieses Thema im Windows.Form Unterforum ist. Das bitte ich zu entschuldigen. Ich lasse dennoch die WPF Sachen vorhanden.

Mit freundlichen Grüßen
Halfbax
 
#3
Danke für die Links und Antwort, diese wpf-tutorials.com kenne ich bereits. Trotzdem habe ich mich darüber gefreut.

Diese WBF ist auch gut, nun das ist so fast, wonach ich suche. Es handelt sich aber nicht um Objekt welches mit Tabs arbeitet. Sondern direkt in einem Formcontent. Ich habe extra so gezeichnet, was ich so meine. Ist es möglich?
 

Anhänge

Halfbax

Erfahrenes Mitglied
#4
Du könntest theoretisch den Tabcontrol-Header ausblenden, dann hättest du genau nach dem was du suchst. Je nach Framework ist es leichter oder schwieriger. Andernfalls müsstest du Panels verwenden und deren Visibility jeweils 1/0 setzen. Damit setzt du aber die Übersicht im Designer herab.
 
#5
Ah okey!

Gibt es vielleicht so Sample-Muster von Tabcontrol-Header mit Menüstrip zum Herunterladen damit ich es genauer betrachten kann wie es so funktioniert und was für Code geschrieben ist?

Falls es nicht sowas gibt, könntest du mir vielleicht ein kurzes Tut hier schreiben? Selbstverständlich wenn du Lust und Zeit hast. ;-)
 

Halfbax

Erfahrenes Mitglied
#6
Falls es nicht sowas gibt, könntest du mir vielleicht ein kurzes Tut hier schreiben? Selbstverständlich wenn du Lust und Zeit hast. ;)
Habe da mal ein kleines Beispiel für dich gebastelt. Im Windows.Forms Framework ist anscheinend nicht ganz so einfach möglich den Header auszublenden. Also anfängertechnisch sollte dies mittels des TabControls nicht angewandt werden.

Dementsprechen habe ich etwas improvisiert. ;)
 

Anhänge

Spyke

Capoeirista
Premium-User
#8
hier mal kleiner code zum ausschalten der Tabs.
In Designer noch sichtbar und zur Laufzeit wird DisplayRectangle entsprechend gesetzt.
Code:
        public class MeinTabControl : TabControl
        {
            public MeinTabControl()
            {
                Multiline = false;
            }

            public override Rectangle DisplayRectangle
            {
                get
                {
                    if (!DesignMode)
                        return new Rectangle(0, 0, Width, Height);
                    return base.DisplayRectangle;
                }
            }

            protected override bool ProcessDialogKey(Keys keyData)
            {
                const Keys tabChange = (Keys.Control | Keys.Tab);
                if ((keyData & tabChange) == tabChange)
                    return true; //Strg + Tab auschalten, sonst könnt man so noch tab wechseln
                return base.ProcessDialogKey(keyData);
            }
        }
Und Birnenkopf.
Kannst dir auch mal MdiContainer anschauen.
So wurden früher Fenster im Fenster angezeigt.
 
Anzeige

Neue Beiträge

Anzeige