2016-03-29 12 views
3

Ich arbeite mit Windows-Formular-Anwendung in Visual Studio 2015. Jetzt ist meine Anforderung, mehrere Fenster Formular beim Klicken auf die Schaltfläche zu schließen.So schließen Sie mehrere Formulare in Windows-Formular Anwendung

Hinweis: I unten genannten Links

closing-multiple-forms-in-c-sharp

How-to-Connect-forms-in-Csharp-windows-application

How to swap between forms in windows forms application

Schauen Sie sich die Bilder unten, was ich gearbeitet habe.

Bild - 1 enter image description here

Bild - 2 enter image description here

Bild - 3 enter image description here

Bild - 4 enter image description here

+0

Sie eine andere Instanz der ersten Form erstellt und verstecken es, so wird Ihre erste Form, die derzeit offen ist, nicht verbergen. Sie sollten die offene Instanz ausblenden. –

+0

Lassen Sie Ihre Formulare von IDisposable erben und platzieren Sie sie mithilfe von() -Anweisungen. –

Antwort

0

In Form - 1 schreiben den Code unten

enter image description here

In Form - 2 den folgenden Code schreiben enter image description here

2

Sie haben eine weitere Instanz Ihrer ersten Form erstellt und diese ausgeblendet, so dass Ihre erste Form, die gerade geöffnet ist, nicht ausgeblendet wird.

Sie sollten die geöffnete Instanz ausblenden. Um dies zu tun, können Sie es Application.OpenForms mit finden:

var first = Application.OpenForms.OfType<FirstForm>().FirstOrDefault(); 
if (first != null) 
    first.Hide(); 

Sie können auch einen Verweis auf die erste Form in Program Klasse halten und verwenden Sie diese Bezugnahme auf Hide es oder Show es wieder.

Hinweis: Application.OpenForms gibt sichtbare Formulare zurück, und wenn Sie ein Formular ausblenden, wird das Formular nicht mehr in der Sammlung angezeigt.

+0

Danke. Das funktioniert für mich in meiner Echtzeitanwendung. Ich habe bekommen, was ich erwartet habe. @ Reza Aghaei. –

1

seine einfache .. wenn Sie form2 rufen, dann müssen Sie anhand von form1 passieren und das Hauptformular verstecken und die form2, wenn Klicken Sie auf button1 und offene frmshow schließen ..

, wenn Sie auf BtnAnalysis klicken ...

private void BtnAnalysis_Click(object sender, EventArgs e) 
{ 
    Form2 frm2 = new Form2(); 
    frm2.Show(this);  // here the reference of form1 pass to the form2 
} 

in Ihrem Form2 Sie haben wie den Code zu tun ...

private Form1 frm; 
    public Form2() 
    { 
     InitializeComponent(); 
    } 

    public void Show(Form1 frm1) 
    { 
     frm = frm1;  // here assign the reference of form1 to form for hiding purpose 
     this.Show(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     frmshow frmshw = new frmshow(); 
     frm.Hide();  // hide mainform i.e. form1 
     this.Close();  // close the form2 
     frmshw.Show();  // show the frmshow form 
    } 

Sein sicher Arbeitete ... Sie haben, dies zu versuchen ... wenn Sie wollen Quelle und Kontakt ich per E-Mail. ketanvavadia @ gmail. com

Verwandte Themen