Wie kann ich aus einem Form heraus ein anderes schliessen?
Ich habe hierzu folgendes probiert....hat aber nicht geklappt!
Form- und Codehandling
kann mir jemand helfen.....
Einfach form1.Close() wobei form1 die zu schließende Form ist.
Baka wa shinanakya naoranai.
Mein XING Profil.
So funktioniert es auch....aber ich möchte aus Form1 das Form2 schliessen.....kannst du mir helfen?
Wie denn??(
Wie kann ich aus Form1 das Close() aus Form2 aufrufen?
Form2 kennt bei dir also Form1 nicht?
Dann musst du in Form2 ein Event definieren, das ausgelöst wird wenn sich Form1 schließen soll.
Wenn in Form1 Form2 geöffnet wird, abonnierst du das Event. Der Event-Handler schließt Form1.
gruß ldr
Kannst du ein Code bsp. machen?
Also ich habe Form1. Auf ein Button wird das Form2 geöffnet. Nun sind beide offen. Nun soll sich über Form1 das Form2 wieder schliessen.
Wo ist denn das Problem? Glaube dir fehlt noch ein Grundverständnis. Du erzeugst doch im Eventhandler der durch den Fenster öffnen Button aufgerufen wird irgendwo nen Objekt von deiner Form2 und zeigst sie dann mit Show bzw, ShowDialog oder? Genau dieses objekt merkst du dir inner Variablen und über diese kannst du es auch jederzeit mit Close schließen.
Baka wa shinanakya naoranai.
Mein XING Profil.
Ach verdammt Form1 soll Form2 schließen und nicht umgekehrt? Dann vergiss meinen Ansatz wieder...
ldr
Wo ist denn das Problem? Glaube dir fehlt noch ein Grundverständnis. Du erzeugst doch im Eventhandler der durch den Fenster öffnen Button aufgerufen wird irgendwo nen Objekt von deiner Form2 und zeigst sie dann mit Show bzw, ShowDialog oder? Genau dieses objekt merkst du dir inner Variablen und über diese kannst du es auch jederzeit mit Close schließen.
Genau so mache ich es.....ich möchte jetzt wissen wie ich mir das Objekt in einer Variable merken kann.
Indem du es der Variablen einfach zuweist. Zeig mal bitte deinen Code zum öffnen der Form und beschreib mal kurz was du da machst, glaub des weißt du selber nicht genau 😉
Baka wa shinanakya naoranai.
Mein XING Profil.
private void cmb_Login_Click(object sender, EventArgs e)
{
// Neue Instanz des Main Forms erstellen
Main start = new Main();
// Form öffnen
start.Show();
}
Und was ist jetzt die Variable start 😁 Dein Problem ist doch jetzt einfach nur dass start nicht außerhalb dieses Eventhandlers verfügbar ist. Änder des indem du start z.B. zu ner Klassenvariablen machst und schon kannst von überall in der Klasse darauf zugreifen, also auch in deinem Eventhandler der die Form schließen soll.
Baka wa shinanakya naoranai.
Mein XING Profil.
Ich bin ja in einem andern Form und somit auch in einer anderen Klasse....und so kann ich nicht die laufende Instanz ansprechen....verstehe es nicht......
Du must natürlcih eine Referenz auf die zu schließende Form besitzern.
class FormMitDemSchließenButton : System.Windows.Forms.Form
{
private System.Windows.Forms.Form zuSchließendeForm = null;
void Load_Form(object sender, EventArgs e)
{
System.Windows.Forms.Form f = new MyForm();
f.Show();
this.zuSchließendeForm = f;
}
void Schließen_Click(object sender, EventArgs e)
{
if(this.zuSchließendeForm!=null)
{
this.zuSchließendeForm.Close();
this.zuSchließendeForm = null;
}
}
// ... restlicher Code von dieser Klasse
}
Hallo ganymedes,
diese Thread ist ein klassisches Beispiel dafür, wie sehr ein durch fehlende Grundlagen ein Thread unnötig verlängert wird. Deshalb setzen wir auch bestimmte Grundlagen voraus. Das bedeutet, dass man keine Fragen stellen soll, wenn einem die Grundlagen fehlen, um die Antworten zu verstehen. Bitte eigne dir die Grundlagen aus Büchern (z.B. http://www.galileocomputing.de/openbook/visual_csharp/) an. Ein Forum ist schlecht geeignet, um Grundlagen zu vermitteln.
herbivore