Dialog mit dem Windows Forms Designer erstellen

Tikonteroga

Erfahrenes Mitglied
Hallo,

ich bin von der Entwicklung von grafischen Oberflächen mit JAVA SWING nach Windows Forms umgestiegen. Ich versuche deshalb immer möglichst zu vergleichen.

Nun möchte ich gerne aus einer Form (JFrame) heraus einen Dialog öffnen, den ich selber entwerfen möchte. Muss ich hierfür eine neue Form erstellen oder gibt es hier eine andere Klasse, die ich verwenden kann? In Java gibt es z. B. die JDialog Klasse.

Gruß

Tikonteroga
 
Hallo,

dafür brauchst du eine neue Form.
Die kannst du dann mit ShowDialog() anzeigen.
Durch ShowDialog bleiben die anderen Fenster deiner Anwendung gesperrt, bis du ihn beendest.
Du darfst natürlich das Property "DialogResult" nicht vergessen zu setzen.
 
Wenn du nur einen Nachrichtendialog - z.Bsp. für einen Fehlermeldung ausgeben möchtest gibt es noch die MessageBox Klasse. Ansonsten wie oben schon beschrieben, jedoch musst du nicht zwangsläufig das DialogResult abfragen.
 
Hallo,

danke für die Antworten. Ich habe das so umgesetzt.

Das DialogResult habe ich in den Click-Events der Buttons "OK" und "Abbrechen" entsprechend gesetzt. Ist das so üblich ?

Muss ich beim Schließen des Dialogs irgendetwas beachten bezüglich dem freigeben von Ressourcen ?

Zudem bin ich mir bei der Speicherverbrauch/CPU-Laufzeit nicht ganz sicher, wie ich verfahren muss. Soll ich für die Dialoge über die Laufzeit der Anwendung Speicher reservieren oder soll ich die Dialoge bei bedarf immer wieder neu erstellen (new) und den Speicher wieder als frei Markieren ? Gibt es hierfür Richtlinien seitens Microsoft ?
 
Naja er möchte den Dialog selbst entwerfen, daher fällt MessageBox schonmal weg.

DialogResult muss er nicht zwingend abfragen (im Mainprogramm)... aber setzen sollte er es.
Ansonsten kann er seinen Dialog nur mit dem "Kreuz oben rechts" schliessen.
Will er aber einen Ok oder Cancel Button nutzen, kommt er um DialogResult meines Wissens nicht drum rum.
 
Naja das kommt auf den Anwendungsfall an würde ich sagen.
Wenn du nur kleine Dialoge hast, kannst du die mit new immer wieder neu erzeugen.

Wenn du aber sowas wie eine Dialogbasierte größere Benutzerinteraktion hast, würde ich alle Dialoge am Anfang erstellen und dann das entsprechende Fenster nur sichtbar/unsichtbar schalten. So könntest du z.B. Ergebnisse die Abhängig vom vorherigen Dialog sind schon ins nächste Fenster schreiben (weil es ja schon da ist, nur nicht zu sehen).

Wobei mir nicht ganz klar ist, was du CPU-Laufzeitproblemen meinst wenn du mit wartenden Dialogen arbeitest.
 
Zuletzt bearbeitet:
Also ich habe angenommen, dass man, wenn man die Dialoge immer komplett neu erstellt, höhere Wartezeiten hat und die CPU-Auslastung höher ist, als wenn ich den Dialog im Speicher halt und ihn nur neu zeichnen lasse.

Ich tendiere aber eher dazu in nur einmal mit new zu erstellen, um die Laufzeit der Garbage Collection niedrig zu halten.
 
Stell dir folgende Frage: Sind 5-10 Millisekunden für dich relevant? Wenn ja: Profiler nehmen und verschiedene Methoden benchmarken, wenn nein: Den einfacheren der beiden Wege nehmen.
 

Neue Beiträge

Zurück