| Autor |
Beitrag |
NoLe_Kazuik
      
Beiträge: 17
Erhaltene Danke: 2
Windows 7
VisualStudio 2010
|
Verfasst: So 21.08.11 16:58
Hallo,
habe ein paar Probleme mit der Erstellung der GUI bei meinem Projekt.
Und zwar wollte ich fragen, wie man solche Reiter wie beim Visual Studio generieren kann (also dass ich gleichzeitig mehrere Dateien öffnen und diese dann per Reiter auswählen kann)?
Ich sitze schon eine geraume Zeit dran, aber irgendwie seh ich den Wald vor lauter Bäumen nicht...
Hoffe mir kann geholfen werden.
Danke an alle schonmal im Voraus.
Grüße
NoLe-Kazuik
|
|
pixelport
Hält's aus hier
Beiträge: 13
Erhaltene Danke: 3
|
Verfasst: So 21.08.11 17:37
Ich weiss nicht genau was du machen willst und bin noch ein Anfänger aber wie wärs mit TabControl? Er ist in der Toolbox unter der Kategorie Container zu finden.
Für diesen Beitrag haben gedankt: NoLe_Kazuik
|
|
NoLe_Kazuik 
      
Beiträge: 17
Erhaltene Danke: 2
Windows 7
VisualStudio 2010
|
Verfasst: So 21.08.11 17:44
pixelport hat folgendes geschrieben : | | Ich weiss nicht genau was du machen willst und bin noch ein Anfänger aber wie wärs mit TabControl? Er ist in der Toolbox unter der Kategorie Container zu finden. |
An den TabControl hatte ich auch soweit schon gedacht (hab ich vergessen zu erwähnen)*sorry*. Wie krieg ich das aber hin, dass ich (wenn ich zB ne neue Datei anlege, oder ne Datei öffne) in dem TabControl dann die RichTextBox drin hab?
|
|
pixelport
Hält's aus hier
Beiträge: 13
Erhaltene Danke: 3
|
Verfasst: So 21.08.11 17:51
Du kannst vorher mit richTextBox1.Visible = false; Die Textbox verschwinden lassen und dann im Event wenn die Datei geöffnet worden ist es wieder auf true setzen. Da gleiche geht glaube ich auch mit Tabs.
Für diesen Beitrag haben gedankt: NoLe_Kazuik
|
|
pixelport
Hält's aus hier
Beiträge: 13
Erhaltene Danke: 3
|
Verfasst: So 21.08.11 17:53
Hab ich hier www.c-sharp-forum.de...ewtopic.php?t=106719 vorhin auch gemacht(Elemente mit Visible verstecken).Du kannst dir den Source anschauen.
Für diesen Beitrag haben gedankt: NoLe_Kazuik
|
|
NoLe_Kazuik 
      
Beiträge: 17
Erhaltene Danke: 2
Windows 7
VisualStudio 2010
|
Verfasst: So 21.08.11 17:54
Klingt erstmal plausibel und simpel (wie ich es mir denken konnte - zu viel Bäume um den Wald zu sehen) ^^ ich werds nachher mal ausprobieren... Bin aber für weitere Vorschläge offen.
|
|
NoLe_Kazuik 
      
Beiträge: 17
Erhaltene Danke: 2
Windows 7
VisualStudio 2010
|
Verfasst: So 21.08.11 21:44
So, wollte grad meine GUI weiter gestalten, da bin ich auf folgendes Problem gestoßen:
Wenn ich das Programm maximiere, wie kann ich dann Elemente im Verhältnismäßig anordnen? Also zB. links ein TabControl mit 75% und rechts eine TextBox mit 25% der kompletten Breite? Weiß da jemand Rat?!
Vielen Dank im Voraus
NoLe_Kazuik
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 22.08.11 05:56
Das Problem ist, wenn du die Tabs nur versteckst, dass du die vorher anlegen musst. Besser ist es, wenn du die dynamisch erzeugst, so dass du auch so viele hast wie gebraucht werden.
NoLe_Kazuik hat folgendes geschrieben : | | Wenn ich das Programm maximiere, wie kann ich dann Elemente im Verhältnismäßig anordnen? Also zB. links ein TabControl mit 75% und rechts eine TextBox mit 25% der kompletten Breite? |
Wenn es prozentual sein soll, wirst du das im Ereignis Resize selbst ausrechnen und ändern müssen. Wenn sich die Größe an den Rändern des Formulars orientieren soll, gibt es auch Anchor.
Für diesen Beitrag haben gedankt: NoLe_Kazuik
|
|
bakachan
      
Beiträge: 503
Erhaltene Danke: 34
W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
|
Verfasst: Mo 22.08.11 08:22
Wenn du nicht selbst ausrechnen möchtest kannst du für die Anordnung/Proprtionen auch ein TableLayoutPanel verwenden.
Für diesen Beitrag haben gedankt: NoLe_Kazuik
|
|
NoLe_Kazuik 
      
Beiträge: 17
Erhaltene Danke: 2
Windows 7
VisualStudio 2010
|
Verfasst: Mo 22.08.11 10:52
jaenicke hat folgendes geschrieben : | | Das Problem ist, wenn du die Tabs nur versteckst, dass du die vorher anlegen musst. Besser ist es, wenn du die dynamisch erzeugst, so dass du auch so viele hast wie gebraucht werden. |
Nee, ich werde nicht die Tabs verstecken, sondern diese dynamisch erzeugen... Lediglich den 1. Tab verstecke ich beim starten meines Programmes, solange keine Datei geöffnet wurde.
Oder kann ich das (noch) besser Lösen?
jaenicke hat folgendes geschrieben : | | Wenn es prozentual sein soll, wirst du das im Ereignis Resize selbst ausrechnen und ändern müssen. Wenn sich die Größe an den Rändern des Formulars orientieren soll, gibt es auch Anchor. |
Gut, dann werd ich mir das mal anschauen dazu...
bakachan hat folgendes geschrieben : | | Wenn du nicht selbst ausrechnen möchtest kannst du für die Anordnung/Proprtionen auch ein TableLayoutPanel verwenden. |
Dein Tipp ist auch Super Bakachan, den werde ich in Erinnerung behalten, falls der Hinweis von jaenicke nicht klappen sollte.
Schonmal ein herzliches Danke an alle, die geholfen haben. Habe hier im Forum noch nicht so sehr darauf geachtet, ob man anderen Usern ein "Danke" aufdrücken kann, aber wenn, dann bekommt Ihr alle schonmal eins
NoLe_Kazuik
|
|
NoLe_Kazuik 
      
Beiträge: 17
Erhaltene Danke: 2
Windows 7
VisualStudio 2010
|
Verfasst: Fr 26.08.11 13:15
Ich habe jetzt den Tip von Bakachan genutzt. Klappt im nachhinein auch viel besser.
Jetzt hab ich aber noch eine Frage bezüglich dem Speichern.
Wie kann man einen fokussierten Tab (inkl. RTB) speichern und wie könnte man mehrere Dateien Tabs gleichzeitig speichern?
Hoffe, dass mir hier nochmal jemand helfen kann (mit dem speichern habe ich während meines Studiums bisher kaum zu tun gehabt).
Mit freundlichen Grüßen
NoLe_Kazuik
|
|
bakachan
      
Beiträge: 503
Erhaltene Danke: 34
W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
|
Verfasst: Fr 26.08.11 13:37
Die aktuell ausgewählte TabPage eines TabControls kannst du mithilfe der SelectedIndex-/SelectedTab-Property abfragen.
Die Zuordnung welche Datei zu welcher TabPage gehört müsstest du ja schon beim öffnen machen (z.B. ein Dictionary).
Zum Speichern findest du entsprechende Klassen im System.IO-Namespace (z.B. Streamwriter, Textwriter, File).
Für diesen Beitrag haben gedankt: NoLe_Kazuik
|
|
NoLe_Kazuik 
      
Beiträge: 17
Erhaltene Danke: 2
Windows 7
VisualStudio 2010
|
Verfasst: Fr 26.08.11 13:44
bakachan hat folgendes geschrieben : |
Die Zuordnung welche Datei zu welcher TabPage gehört müsstest du ja schon beim öffnen machen (z.B. ein Dictionary).
|
Wenn der User aber einen neuen Reiter angelegt hat, ohne das dieser bisher gespeichert wurde, so habe ich ja eigentlich keine Zuordnung...
Aber ich glaub da finde ich schon noch ne gute Möglichkeit.
Ich danke dir aber auf jeden Fall erstmal Bakachan.
|
|
NoLe_Kazuik 
      
Beiträge: 17
Erhaltene Danke: 2
Windows 7
VisualStudio 2010
|
Verfasst: Fr 26.08.11 18:37
Durch Bakachans Tip mit dem TableLayoutPanel kann ich mein Programm in meinem gewünschten 75%-25% Verhältnis ausstatten. Nun suche ich noch nach einer Möglichkeit, dieses Verhältnis während der Laufzeit zu verändern (in 5% Schritten). Hoffe mir kann hier wieder jemand helfen...
Solch eine Super Community hier bin ich noch nie begegnet
|
|
bakachan
      
Beiträge: 503
Erhaltene Danke: 34
W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
|
Verfasst: Fr 26.08.11 20:14
Am TableLayoutPanel gibt es Properties für die RowStyles und ColumnStyles wo du per Index auf die Styles zugreifen kannst. Daran wiederum gibt es Properties für SizeType und Height/Width.
z.B.
C#-Quelltext 1: 2:
| tableLayoutPanel1.ColumnStyles[0].SizeType = SizeType.Percent; tableLayoutPanel1.ColumnStyles[0].Width = 25; |
Für diesen Beitrag haben gedankt: NoLe_Kazuik
|
|