C# Visual Studio / GUI Designer / TabPage

PEASANT KING

Commander
Registriert
Okt. 2008
Beiträge
2.412
Hallo Leute,

ich setze mich seit zwei Tagen das erste Mal mit Visual Studio und C# auseinander.

Ich will mir Arbeit ersparen und arbeite gern mit GUI Designern, daher meine Frage, ob es möglich ist in GUI Designer mir eine TabPage zu erstellen, die ich dann später einem TabControl per Buttonklick hinzufügen kann.
Ich habe das Ganze schon mal in Java und C++ in Verbund mit Qt programmiert. Da ging das per Designer und Custom Code, ich weiß das ich in Visual Studio auch einfach mir eine TabPage zusammen schreiben kann, allerdings würd ich ich mir das ersparen wollen und einfach diese im Designer zusammen fügen und dann mit meiner Anwendung verknüpfen.

Ist das möglich?
 
Mit WPF kannst du einfach über die Toolbox ein TabControl-Element hinzufügen, falls ich deine Frage richtig verstanden hab.
 
Hallo,
​von welcher VS-Version reden wir? UI-Technologie (WinForms, WPF, Web)?
 
Entschuldigung für die sperrlichen Infos.

Es handelt sich um Visual Studio 2015 Update 2. Ich nutze WinForms.

@Fellor
Ich weiß das ich so Tabs adden kann und auch wieder löschen, allerdings benötige ich eine Lösung, wo die Tabs dynamisch entfernt werden oder hinzugefügt werden, soweit so gut kein Thema.
Allerdings will ich die Tabs zuvor designen in eigenen Klassen gehalten. Es gibt z.B. ein Tab wo ich zwei weitere Tabs drin habe mit einer Tabellendarstellung und einer Datensatzdarstellung.

Wenn der Benutzer nun ein Button im Menü klickt soll das Tab mit den Untertabs hinzugefügt werden. Das kann ich auch programmieren, da schon gemacht in C++ Qt und Java allerdings, habe ich dort zuvor im jeweiligen Designer immer die Tabs erstellt und konnte so sehen wie es aussieht. Ich bin kein Fan von selber schreiben ohne bildliche Darstellung zuvor im Designer.
 
Warum so umständlich? Die Tabs über den Designer erstellen und ausblenden. Bei Bedarf einfach wieder einblenden. Da sparst dir en Haufen Code und Zeit.

greetz
​hroessler
 
Ok wusste nicht das ich die ausblenden kann o.O ich Depp.

Kleiner Tipp, wie die Methode zum ausblenden heißt? Ist ja noch besser.
 
Danke dir @hroessler.

Bin echt beeindruckt was Visual Studio alles bietet und ärgere mich wieso ich so viele darauf verzichtet habe und in Netbeans o.Ä rumgekraucht habe.
 
Sämtliche Java UIs (AWT, SWT, Swing, JavaFX, ...) und Qt können das übrigens auch... ;). Das hat primär nichts mit der IDE zu tun. Das ist eine Standardfunktion die eigentlich alle UI-Designer beherrschen. Zumindest kenne ich keinen der das nicht könnte....

greetz
​hroessler
 
Zuletzt bearbeitet von einem Moderator:
Das was du aber wohl meinst ist das das TabControl die Property "visible" hat, allerdings geht es mir um die eigentliche TabPage auf dem TabControl und da muss ich wohl doch wieder selber ran.
Das ist dann in Java und Qt natürlich auch so gewesen, nur konnte ich in Java Designer halt einfach eine Klasse abc extends JPanel erstellen, diese designen und einfach mit addTab(); was auch immer hinzufügen oder
entfernen.

In Java hatte ich mir eigene Swing Klassen dafür gefertigt, da ich auch noch die Funktion von Schließbuttons in den Tabs benötigte.
 
Mit
Code:
this.TabControl.Visibility = System.Windows.Visibility.Hidden;
sollte es funktionieren. TabControl ist der Name des Objekts.
 
Dann hatte ich dich falsch verstanden, sorry. Wobei du hier deine Architkur überdenken solltest. 1 Methode hat eine Aufgabe, 1 Klasse repräsentiert ein reales Objekt, genauso sollte ein Tab genau ein UI (1 Page bzw. eine Aufgabe) haben, und nicht mehrere...

greetz
hroessler
Ergänzung ()

Fellor schrieb:
Mit
Code:
this.TabControl.Visibility = System.Windows.Visibility.Hidden;
sollte es funktionieren. TabControl ist der Name des Objekts.
Der TE hat doch bereits Windows Forms als UI-Technologie angegeben. Was soll er mit WPF Code?

greetz
​hroessler
 
Oh, hab ich überlesen, sorry!

Der beschriebene Trick mit der Vererbung funktioniert unter C# nicht?
 
Ja genau danke @roessler, aber genau von Software Architektur habe ich nicht so großen Plan... da ich kein studierter bin sondern ich selber alles mir beigebracht habe und beibringe.

Aber in meinem Fall wäre die TabPage doch genau ein Objekt und zwar ein Objekt, was eine weiteres TabControl mit zwei Tabs beinhaltet.
Die Logik findet ja später in eigenen Klassen statt. Oder was meinst du jetzt?

Gibt es irgendwelche Stellen wo ich über Software Architektur lesen kann? Ich weiß was OOP ist und ich kenn einige Pattern allerdings tue ich mich immer schwer alles vernüftig umzusetzen.

@Fellor
Doch Vererbung funktioniert auch dort, ich bin einfach nur faul den Code für das TabPage selber zu schreiben und möchte dieses einfach eben zusammen schustern.
 
Das verschachteln von Tabs empfinde ich für die Useability als regelrecht grausam. Du hast ein Objekt, dass aber durch die Unterobjekt zig weitere UIs/Aufgaben hat...

greetz
​hroessler
 
Naa, C# und .Net übernehmen echt viel für dich, aber nicht alles ;)

Kann dir das Buch "Objektorientierte Analyse und Design" aus dem O'Reilly Verlag empfehlen. Ist für Anfänger gut verständlich.
 
Zurück
Oben