2017-10-02 3 views
-1

Ich mache einen Laden mit 7 Formen, das Formular 1 ist die Grundausstattung des Ladens mit Bilderbox und ein Textfeld, das sagt, wie viel ich bezahlen soll. Wenn ich in die Bilderbox klicke, zum Beispiel in ein T-Shirt, öffnet sich ein neues Formular mit einigen Informationen und einem Button mit der Aufschrift "in den Warenkorb". Grundsätzlich möchte ich auf den Button "in den Warenkorb" klicken und dann schließt das Form2 und zurück um 1 zu bilden und im Textfeld (das zeigt, wie viel ich bezahlen soll) zeigt der Wert an.Wie man Form2 in Form1 anruft

+0

Willkommen bei SO. Bitte versuchen Sie, die Klarheit Ihrer Frage zu verbessern, siehe [fragen]. – Zulan

Antwort

1

Formulare sind Objekte wie jedes andere, und Sie können Verweise auf sie übergeben und Methoden aufrufen wie auf jedem anderen.

Zum Beispiel, sagen wir mal Sie eine Methode auf Form1 aussetzen, die den Wert akzeptiert und aktualisiert die Benutzeroberfläche:

public void UpdatePayAmount(double amount) 
{ 
    // use the supplied value to update your text box 
} 

Dann würden Sie diese Methode von Form2 rufen, wenn auf die Schaltfläche „In den Warenkorb“ klicken Taste. Etwas wie:

form1Instance.UpdatePayAmount(someAmountValue); 

So Ihr Form2 Code einen Verweis auf eine Instanz von Form1 in einer Variablen irgendwo muss. Da Form2 jetzt von Form1 abhängt, wäre ein vernünftiger Ort, um diese Anforderung zu stellen, in seinem Konstruktor. Vielleicht ein privates Feld bevölkern:

private Form1 form1Instance; 

public Form2(Form1 form1) 
{ 
    form1Instance = form1; 
} 

Jetzt Form2 zu einer Instanz von Form1 einen Verweis erfordert, wenn Sie es schaffen, so kann es ein Verfahren in dieser Instanz aufrufen, wenn die Schaltfläche geklickt wird. Also, wenn Sie Form2 in Ihrem Form1 Code erstellen würden Sie diese Instanz liefern:

form2 = new Form2(this); 
form2.Show(); 
Verwandte Themen