Meine Frage scheint sehr einfach, aber es ist wirklich ziemlich schwierig. Ich suche hier viel und finde nichts Schlüssiges.Wie man ein Formular schließt und zum Mainform zurückkommt
Ich habe ein Hauptformular, das ständig geöffnet sein muss. Ich habe einen Knopf, der ein Formular2 aufruft, ich mache eine Aktion darauf, dann rufe ich ein Formular3 auf, das dem Benutzer erlaubt, einen Gegenstand auszuwählen, ihn dann zu schließen und zum Hauptformular zurückzukehren. Der schwierige Teil ist, dass ich Daten von f3 zu f1 übergeben muss.
Mein Problem ist, auf der zweiten Form habe ich eine nächste & Abbrechen-Tasten (und eine Schließen-Taste). Next button hide f2, form1 "komm zurück" & rufe das form3 auf. Warum nicht direkt das Formular3 aufrufen? weil ich Daten von form3 zu form1 übergeben muss, damit ich Formular3 von Form1 aufrufen kann. Also ich möchte Cancelbutton (und schließend Knopf) zu form1 zurückkommen, ohne form3 aufzurufen. Ich bin nicht sicher, hier ist also klar zu sein, meinen Code
public partial class Form1 : Form
{
private void bouya_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.ShowDialog();
Form3 form3 = new Form3(); //it opens when form2 closes!!!
form3.ShowDialog();
string data1 = form3.label2.Text; //the data i need, without calling form3 from here i can't pass data !!!
//do some action with data1
}
}
form2 sehr einfach
public partial class Form2 : Form
{
private void Next_Click(object sender, EventArgs e)
{ this.Hide(); }
private void Cancel_Click(object sender, EventArgs e)
{//i just want here to cancel winform3 to be called}
private void Form2_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{ // Actually this command does'nt work at all i tried
//to put a messagebox.Show("bla") nothing happens but i would like to do the same}
}
Und form3 ich aus einer Liste wählen Sie ein Element ist senden an form1
Ok für einige von euch scheint mein Problem nutzlos und ich komplizierte meinen Code für nichts, aber ich brauche diese wirklich für m. (und ich muss form3 von form1 öffnen, um Daten 3 zu 1 zu senden)
Vergiss über * Form1 form1 = new Form1(); es ruft eine neue form1 an und ich will es nicht!
so clever ist, kann ich nicht Ich muss schreiben Form3 von Form1 und ich kann Form2 leicht schließen. Perfekt, danke !! und was ist mit Abschlussereignis? keine Ahnung warum funktioniert das nicht ?! (das Ereignis!) – jsls
Wenn Sie einen Event-Handler deklarieren, müssen Sie ihn auch an das Event anhängen * - Ich sehe nicht, wo Sie das gemacht haben. Wie auch immer, ich habe nicht verstanden, was Sie mit dem Event-Handler erreichen wollten. Da 'ShowDialog' die aktuelle Code-Kette blockiert, bis der Dialog sowieso geschlossen wird, hat das keinen Vorteil.Also habe ich mich nicht gefragt oder etwas darüber geschrieben :-D –