Überprüfen ob Form schon existiert
-
Das VB Beispiel prüft mit dem is Operator ob die Instanz f vom Typ Form1 ist.
Das kannst Du an sich genauso in C# übernehmen, dort gibt es diesen operator auch.
namespace WindowsApplication1 { public partial class Form1 : Form { Form2 dlg = new Form2(); public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { foreach(Form f in Application.OpenForms) { if (f is Form2) MessageBox.Show("Form2 ist offen"); } } private void button2_Click(object sender, EventArgs e) { dlg.Show(); } } }
-
foreach(Form f in Application.OpenForms) { if( f.GetType() == typeof(Form1) ) // Für Typen musst du typeof() verwenden { MessageBox.Show("Fenster schon geöffnet"); } }
-
Hi!
Danke an alle 3. Ich habe mich jetzt für die C#-Variante des VB-Beispiels entschieden. Den is-Operator kannte ich noch nicht. Jetzt klappt es wunderbar.
Danke shcön!
-
Mal interessehalber:
was spricht gegen eine statische Klassenvariable ?
-
- Die Abfrage könnte aus verschiedensten Instanzen gestellt werden
- Man kennt den Typ aber nich die Instanz
- Man möchte mal eine Form zweiter Instanz öffnen, mal die bestehende verwenden
-
Knuddlbaer schrieb:
- Die Abfrage könnte aus verschiedensten Instanzen gestellt werden
Geht auch mit einer stat. KV
Knuddlbaer schrieb:
- Man kennt den Typ aber nich die Instanz
- Man möchte mal eine Form zweiter Instanz öffnen, mal die bestehende verwendenDanach war nicht gefragt
-
Sorry, falls das etwas arrogant rueber kommt; soll kein
Angriff gegen dich sein.
Vielleicht ist die Problemstellung einfach schlecht formuliert.
-
Du hast nach möglichkeiten gefragt die gegen eine statische Klasse sprechen, ich hab ein paar, die mir spontan eingefallen sind genannt.
Die Fragestellung lässt keinerlei Spielraum für Schlußfolgerungen (nach einer statischen Variable wurde auch nicht gefragt) also nimmt man einfach mal was allgemeines an. Hast Du ja auch mit den Statischen Variablen.
Die Diskussion muss ja (wenn das eigentliche Thema beendet ist) sich nicht streng an (dürftige) Vorgaben halten. Auch wenn man annahmen trifft die weder die Aufgabenstellung noch die Vorstellung der Diskussionspartner treffen kann man doch viel dazu lernen.
Also kurz: Passt schon
-
Hi!
Da hat sich ja noch einiges getan
_abs schrieb:
Mal interessehalber:
was spricht gegen eine statische Klassenvariable ?Was spricht für eine statische Klassenvariable? Was ist an der anderen Lösung schlechter?
Ich erkenne da leider noch keinen Unterschied.
Viele Grüße
-
Gast2 schrieb:
Was spricht für eine statische Klassenvariable? Was ist an der anderen Lösung schlechter?
Die anderen Loesungen sind keinesfalls schlecht. Kommt halt darauf an was du machen willst; deshalb ja auch meine Frage.
Wenn du nur eine Variable abfragen musst ist das natuerlich weniger Aufwand und kann schon um einiges schneller sein.
-
Hi!
ich habs jetzt mal mit der statischen Klassenvariablen ausprobiert und ich bin zu dem Schluss gekommen, dass es so einfacher ist.
Vielen Dank und Viele Grüße, Gast2