Autor Beitrag
kevinkeegan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27

Win 7 Prof., Win XP Prof
C# (VS 2010 Premium), SQL, PLS/SQL
BeitragVerfasst: Di 19.02.08 14:39 
Hallo,

gibt es eine Methode, mit der ich die gesamte Form leere, d.h. auf Defaultwerte zurücksetze oder muß ich das "zu Fuß machen"? Bei Oracle Forms heißt die Prozedur "clear_form". Ausgeführt werden soll diese Methode, wenn der Nutzer Datei - Neu ... im Menü drückt (das nur nebenbei).

MfG
Kevin
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Di 19.02.08 16:50 
Das geht leider nur manuell. Es steht zwar alles, was dazu benötigt wird, in der Designer.cs in InitializeComponents(); aber dort werden die Controls auch erzeugt und in die jeweilige Controls-Collection eingetragen, also kann man nicht einfach diese Methode aufrufen. Ebensowenig gibt es irgendeine andere Stelle, in der die Init-Werte stehen und bei Bedarf geholt werden können.

Verfahrensvorschläge:
1. Im Konstruktor werden alle Werte geholt und zwischengespeichert, z.B. durch Serialisierung.
2. Auf den Designer wird vollständig verzichtet; stattdessen werden die entsprechenden Maßnahmen in eigene Init-Methoden ausgelagert, und dabei werden Controls-Konstruktoren und Initialisierungen getrennt.

Keines dieser Verfahren habe ich selbst durchgeführt, aber so müsste es gehen.

Jürgen
kevinkeegan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27

Win 7 Prof., Win XP Prof
C# (VS 2010 Premium), SQL, PLS/SQL
BeitragVerfasst: Fr 25.04.08 09:33 
Ach übrigens Danke Jürgen für die Antwort, ist ja schon ein wenig her ;)
Ich möchte die Aussagen aber nochmal aufgreifen, weil noch aktuell.

Bei Serialisierung bin ich noch nicht "vorbei gekommen", keine Ahnung wofür ich da was machen soll/kann.

Zu 2.: Für diese Vorgehensweise muß ich mich aber bevor ich das Projekt beginne entscheiden, richtig? Ist damit gemeint, dass ich sämtliche Controls programmtechnisch/dynamisch erzeuge, also nicht durch Drag&Drop aus der Werkzeugleiste? Das kann ich mir bei der Fülle an Controls (momentan mind. 100 und es werden mehr) nur schlecht vorstellen, wie funktioniert das in der Praxis? Wie behält man da den Überlick?

MfG
Kevin
bakachan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: Fr 25.04.08 09:38 
Hallo,
mein Vorschlag wäre:

ausblenden C#-Quelltext
1:
2:
this.Controls.Clear();
InitializeComponent();


Kurze Erklärung...
Controls.Clear() löscht alle Controls auf dem Form.
InitializeComponent() ist die Funktion die du auch beim erstellen der Form haben müsstest (vorrausgesetzt du benutzt den normalen Designer), die deine Controls erstellt und initialisiert.
kevinkeegan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27

Win 7 Prof., Win XP Prof
C# (VS 2010 Premium), SQL, PLS/SQL
BeitragVerfasst: Fr 25.04.08 10:18 
Danke für die Antwort, werde ich ausprobieren. Kannst Du vielleicht auch etwas dazu sagen: Controls "händisch" über Toolbox erstellen und programmtechnisch ...?
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Fr 25.04.08 13:11 
"händisch" geht es genauso, wie es der Designer vormacht. Alles, was in der Designer.cs steht, kann man auch selbst erstellen. Ich würde allerdings ein paar Standardmethoden CreateButton, CreateTextBox usw. vorbereiten und diese mit passenden Argumenten versehen und aufrufen.

"Fülle an Controls": Ein Formular sollte natürlich nicht überladen werden, auch wenn der Designer mit Toolbox das erleichtert. Aber es gibt wirklich sehr aktive Programmierer, die auf den Designer völlig verzichten und nur mit Notepad++ und csc.exe entwickeln.

Jürgen