2016-04-22 5 views
0

Closing habe ich eine Klasse mit mehreren Funktionen, in all diesen Funktionen, die ich einen Versuch fangen habe und in einer Rast beginne ich eine neue Form, den Fehler zu zeigen. Wie folgt aus:eine aktive Form von einem anderen Ereignisse Formclosed

Program.erro = exception.ToString(); 
Error NewError = new Error(); 
Error.ShowDialog(); 

Aber ich muss in der Lage sein die aktuelle Form FormUpdate als Beispiel zu schließen, wenn ich die Fehlerform schließen. ich diese Codezeile gesetzt habe in den FormClosed Veranstaltung Fehler:

UpdateOrca.Update.ActiveForm.Close(); 

„Update“ ist die offene Form, die geschlossen werden muss.

Antwort

1

Sie könnten einfach die using Anweisung verwenden und dann, wenn Ihr Fehlerdialog geschlossen wurde, wird der Rest des Codes ausgeführt.

using (Error NewError = new Error()) 
{ 
    NewError.ShowDialog() 
} 
this.close(); 

Sie können dann den Code entfernen, die Sie in NewError ‚s Abschlussveranstaltung gesetzt haben.

0

Wie Sie in that SO Frage zu schaffen close-Ereignis des Kindes Form in Haupt-Form sehen können, und ruft this.close() darin, das Problem zu lösen.

0

Sie sollten den Aufruf Formularinstanz in das Dialogform übergeben. .NET können Sie das Besitzerformular des öffnenden Formulars identifizieren.

Zum Beispiel; Sie können ein Popup wie öffnen;

Dialog frmDialog = new Dialog(); 
frmDialog.ShowDialog(this); 

Dann; Im Popup-Formular können Sie das form_closing-Ereignis wie hören;

private void Dialog_FormClosing(object sender, FormClosingEventArgs e) 
     { 
      if (this.Owner != null) 
       this.Owner.Close(); 
     } 

Ich hoffe, es hilft.

Verwandte Themen