2016-04-06 3 views
1

Ich weiß, dass dieser Code kann meine AnwendungC# Wie bewerbe ich mich Exit-Code für alle X-Mark-Schaltfläche in jeder Form?

System.Windows.Forms.Application.Exit(); 

Aber wie man sich bewirbt diesen Code für alle meine Form Let verlassen, ich habe eine Menge Form haben Muss ich in jeder Form diesen Code setzen?

+0

Wenn das Hauptformular beendet wird, wird die Anwendung beendet. –

+1

Es hängt wirklich davon ab, was Sie brauchen. Wenn Sie die Anwendung von close schließen möchten, dann müssen Sie das Ereignis "Form_Closing" auf jedem Formular abonnieren und diese Logik ausführen. –

+0

Was ist, wenn mein Hauptformular ein Login-Formular ist, so dass Benutzer sich zuerst ausloggen und dann meine Anwendung schließen müssen? –

Antwort

0

Wickeln Sie diese Linie in eine static Methode innerhalb der class mit der Main() .... das macht es etwas modular, nicht viel nützlich, obwohl.

0

können Sie versuchen,

this.close(); 

zu benutzen, um Ihre gerade aktive Form zu schließen. Genauso können Sie jedes Formular verwenden, das Sie schließen möchten.

+0

Tötet dies meinen Prozess im Task-Manager? –

+0

@ user33540: - Close-Methode wird alle Ressourcen freigeben, die mit der Komponente verknüpft sind, und das ist, was ich denke, dass Sie möchten. –

0

Refered zu meinem Kommentar können Sie die Close -Methode aufrufen und FormClosing -event verwenden, um die anderen Formen zu schließen:

public partial class Form1 : Form 
{ 
    Form2 form2; 
    public Form1() 
    { 
     InitializeComponent(); 
     FormClosing += Form1_FormClosing; 
     form2 = new Form2(); 
     form2.Show(); 
    } 

    private void Form1_FormClosing(object sender, FormClosingEventArgs e) 
    { 
     form2.Close(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     Close(); 
    } 
} 

In diesem Beispiel Form1 Ihr Mainform ist, und wenn Sie Form1 schließen, ob verwenden Sie die Close oder indem Sie das Formular mit der Standardschaltfläche schließen, wird das Ereignis FormClosing ausgelöst und alle anderen Formulare werden ebenfalls geschlossen.

Wenn Sie den aktuellen Prozess töten wollen, können Sie diesen Code verwenden:

Process.GetCurrentProcess().Kill(); 
0

In vielen Fenstern bilden Projekte, die ich gearbeitet habe wir eine Grundform hatten und alle Formen in unserem Code von dieser Grundform geerbt , so können Sie ein Formular wie unten haben und Sie ändern nur die anderen Formen, um von diesem zu erben.

public partial class frmBase: Form 
{ 
    public frmBase() 
    { 
     InitializeComponent(); 
    } 

    private void frmBase_FormClosed(object sender, FormClosedEventArgs e) 
    { 
     System.Windows.Forms.Application.Exit(); 
    }   
} 
Verwandte Themen