2010-11-08 15 views
7

Ich habe zwei Formen Form1 und Form2wieder versteckt FORM aus einer anderen Form

I Eröffnung am Form2 von Form1 auf button_Click

Form2 obj2 = new Form2(); 
this.Visible = false; 
obj2.Show(); 

dann möchte ich Form1 Visible zurück (zur Entsorgung Form2) in den gleichen Zuständen der Kontrollen, auf denen ich ging .....

Antwort

16

Ihre Form2 weiß nichts über Form1. Es wird dafür eine Referenz benötigen (Sie können das tun, indem Sie eine Form type-Eigenschaft auf Form2 Hinzufügen und weisen Form1 es nach dem Bau):

//In Form2 
public Form RefToForm1 { get; set;} 

//In Form1 
Form2 obj2 = new Form2(); 
obj2.RefToForm1 = this; 
this.Visible = false; 
obj2.Show(); 

//In Form2, where you need to show Form1: 
this.RefToForm1.Show(); 
+1

+1 für die Idee, persönlich würde ich die Referenz über den Konstruktor übergeben, aber das sind nur zwei verschiedene Schattierungen der gleichen Farbe. :) –

0

Oded Antwort wird sehr gut funktionieren, eine weitere Option mit dem gleichen Ergebnis wird Geben Sie das öffentliche Ereignis in Form2 an, das zum Beispiel "AfterClose" genannt wird, rufen Sie es auf, wenn Form2 entsorgt, und lassen Sie Form1 Ereignishandler hinzufügen, wo es sich selbst zeigt. Lassen Sie es mich wissen, wenn Sie interessiert sind und ich gebe einen Beispielcode.

+0

Ich möchte knowhow 2 zeigen versteckte Form im aktuellen Zustand (wenn versteckt) von einem anderen Formular. –

Verwandte Themen