Entwickler-Ecke
WinForms - 1 Formular, mehrere Darstellungen
hui1991 - Fr 03.04.09 09:58
Titel: 1 Formular, mehrere Darstellungen
Hallo,
ich hab ein Problem mit meinem Formular.
Ich hab ein Forumular, diese wird aber immer anders angezeigt. Die Eigenschaften (Also: Enabled, Location, Size, Visible, Dock) sind bei jeder Ansicht gleich.
Gibt es eine gute Lösung um bei einem Formular zu bleiben und trotzdem die Eigenschaften gesetzt zu haben?
Ich hab bis jetzt das so gemacht ich hab mir mit einer Funktion die ganzen Eigenschaften ausgeben lassen und in den Code kopiert.
Wenn ich da jetzt eine Kleinigkeit ändern will muss ich alles von vorne machen.
Gibt es im Microsoft Visual Studio 2005 eine Möglichkeit dies besser zu designen?
In moment lasse ich InitializeComponent() drüber laufen lassen und dann meine Funktionen aufrufen.
Moderiert von
Christian S.: Topic aus Sonstiges (.NET) verschoben am Fr 03.04.2009 um 09:59
Kha - Fr 03.04.09 10:10
Mir ist nicht ganz klar, was du vorhast. Heißt "verschiedene Ansichten" verschiedene Layouts mit verschiedenen Controls? Die Eigenschaften der Form selbst sollen allerdings immer gleich sein? Dann könntest du die in einer leeren Form-Basisklasse setzen und alle Ansichten über "New Item -> Inherited Form" davon ableiten.
hui1991 - Fr 03.04.09 11:52
Also okay.
Ich hab ein Formular und es soll nicht immer jedes angezeigt werden, da dies bei den ganzen Controls sehr viel Tipparbeit und Zeit kosten würde, hab ich eine Funktion geschrieben der mir solch einen Code erstellt:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| private void ShowNeuErfassen() { groupBox1.Visible = (true && (groupBox1.Visible)); groupBox1.Enabled = (true && (groupBox1.Enabled)); textBox1.Visible = (true && (textBox1.Visible)); textBox1.Enabled = (true && (textBox1.Enabled)); button8.Visible = (true && (button8.Visible)); button8.Enabled = (true && (button8.Enabled)); panel4.Visible = (true && (panel4.Visible)); panel4.Enabled = (true && (panel4.Enabled)); ... label4.Visible = false; label4.Enabled = (true && (label4.Enabled)); checkBox1.Visible = false; checkBox1.Enabled = (true && (checkBox1.Enabled)); panel7.Visible = (true && (panel7.Visible)); panel7.Enabled = (true && (panel7.Enabled)); label37.Visible = (true && (label37.Visible)); label37.Enabled = (true && (label37.Enabled));
label37.Text = "Erfassung von (0 auf 11)"; } |
Das gefällt mir aber so nicht wirklich, da ich daran schlecht Änderungen vornehmen kann.
Ich dachte es gibt eine Möglichkeit die mit einem Designer in Visual Studio 2005 zu erstellen.
Also mit
C#-Quelltext
1:
| public partial class Form2 : Form1 |
funktioniert es doch, hab nur bei
das Base vergessen, trotzdem bleibt das problem, das die Eigenschaften im Designer gesperrt sind.
Also kann ich damit nichts anfangen.
Und wie das mit "geerbtes Formular" bei Rechtsklick auf Projekt -> Hinzufügen -> Element funktioniert, weiß ich auch nicht.
//Edit:Ich habe mir jetzt [url=
http://msdn.microsoft.com/de-de/library/1z3efhd2.aspx]Exemplarische Vorgehensweise: Demonstrieren der visuellen Vererbung[url] angesehen und auch probiert. Naja immerhin weiß ich jetzt wie man ein Formular als DLL speichert.
Kha - Fr 03.04.09 15:38
hui1991 hat folgendes geschrieben : |
| Ich hab ein Formular und es soll nicht immer jedes angezeigt werden |
Ähm, aha :gruebel: .
Wenn du den gesamten Inhalt eines Formulars austauschen willst, solltest du dir einmal User Controls anschauen. Das sind quasi Sub-Formulare, die aber kein eigenes Fenster besitzen, sondern wie jedes andere Control in eine Form eingefügt werden können.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!