2017-07-20 1 views
0

Ich konnte diese genaue Antwort nirgendwo finden, tut mir leid, wenn es beantwortet wurde.Wie wähle ich das Textfeld meines Formulars nach dem Schließen von Form2 aus?

textbox.select und textbox.focus funktioniert gut unter form1_load, aber ich habe ein Linklabel, das Form2 öffnet, aber das Schließen von Form2 mit meinem Abbrechen-Taste oder die Exit-Taste wird nicht offensichtlich wieder die Textbox in Form1 oder Fokus.

Aktualisiert Codebeispiel des Ereignisses zu zeigen, dass Form2 (FormPopup) initialisiert

private void CreateNew_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 
{ 
    var popup = new FormPopup(); 
    popup.ShowDialog(); 
} 
+2

Was haben Sie versucht? Fügen Sie Ihren Code bitte – Grady

+2

Bitte teilen Sie einige Code, um andere zu führen – Mahdi

+0

Wie zeigen Sie das Formular? mit 'Show()' oder 'ShowDialog()'? Fügen Sie den Teil des Codes hinzu, der das zweite Formular für die Frage öffnet. –

Antwort

2

Dies ist nicht die beste Antwort sein könnte, aber wo Sie Ihr Formular initialisieren 2 (Ich gehe davon aus youre so etwas wie Form2 frm2 = new Form2(); tun), Würde ich dann unter dieser Leitung ein FormClosed Ereignis zu diesem Formular unter Verwendung frm2.FormClosed += frm2_FormClosed; anschließen. Jetzt haben Sie eine Methode, die erkennen kann, wenn Formular2 von Ihrem Formular1 schließt, und in dieser Methode können Sie den Fokus Ihres Textfelds festlegen.

Codebeispiel:

private void InitForm2() 
{ 
    Form2 frm2 = new Form2(); 
    frm2.FormClosed += Form2_FormClosed; 
    frm2.Show(); 
} 

private void Form2_FormClosed(object sender, EventArgs e) 
{ 
    textbox1.Focus(); 
} 

Edit: Wie @Ofir Winegarten darauf hingewiesen, wenn Sie Showdialog statt anzeigen verwenden, können Sie den Anruf textbox1.Focus() gerade eingestellt unmittelbar danach, da sie nicht ausgeführt wird, bis form2 geschlossen ist .

Codebeispiel:

private void InitForm2() 
{ 
    Form2 frm2 = new Form2(); 
    frm2.ShowDialog(); 

    textbox1.Focus(); //Will not happen until after form2 is closed. 
} 
+3

Wenn Sie 'ShowDialog' verwenden, warum brauchen Sie das Ereignis? warum nicht den Fokus in der Zeile danach? –

+0

Ja, schön, Sie könnten das möglicherweise tun. TBH Ich habe vergessen, Formulare hatten eine Show und ShowDialog Option, seit ich mit ihnen gearbeitet habe. Ich werde meine Antwort bearbeiten. –

0

Jeder oben half diese Antwort Danke Jungs. Alles, was ich brauchte, war myTextBox.Focus() hinzuzufügen; nach meinem Klickereignis, das Form2 initialisiert. Für jeden, der sich fragt, ist es, weil alles nach ShowDialog() geschrieben wurde; wird erst ausgeführt, nachdem Form2 geschlossen wurde.

private void CreateNew_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 
    { 
     FormPopup popup = new FormPopup(); 
     popup.ShowDialog(); 

     NameBox.Focus(); 

    } 
Verwandte Themen