2016-07-23 20 views
-2

Ich muss einige Methoden von einer Klasse zu einer anderen Klasse in C# aufrufen. Es unterscheidet sich von den anderen Antworten, die aufgestellt werden, da ich nicht scheinen kann, die spezifische Antwort zu finden, die ich suche.So rufen Sie eine Methode von einer Klasse zu einer anderen

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace IT2127P2_150538B 
{ 
public partial class InputForm : Form 
{ 
    const double cupCakePrice = 1.50; 
    int noOfCupcakes, loyaltyPoints; 
    double TotalPrice; 
    int[] price = new int[15]; 
    public InputForm() 
    { 
     InitializeComponent(); 
    } 

    private void textBox1_TextChanged(object sender, EventArgs e) 
    { 

    } 

    private void textBox2_TextChanged(object sender, EventArgs e) 
    { 

    } 

    private void label1_Click(object sender, EventArgs e) 
    { 

    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     Form Summaryform = new SummaryForm(); 
     Summaryform.ShowDialog(); 

     noOfCupcakes = int.Parse(txtNoOfCupcakes.Text); 
     TotalPrice = noOfCupcakes * cupCakePrice; 
     if (txtMemId.Text != "") 
     { 
      if (noOfCupcakes/2 > 0) 
      { 
       loyaltyPoints = (((noOfCupcakes - 1)/2) * 3) + 1; 

      } 
      else 
      { 
       loyaltyPoints = (noOfCupcakes/2) * 3; 
      } 
     } 
     else 
      { 
      loyaltyPoints = 0; 
      } 
     } 
    } 
} 
} 

Der obige Code ist die Hauptklasse, in der die Berechnung durchgeführt wird. Jetzt muss ich die Anzahl der Cupcakes, Treuepunkte und den Gesamtkuchenpreis im unten stehenden Code anzeigen. Mein Problem ist, dass ich anscheinend keine Möglichkeit finde, die Variablen in der primären Klasse zur sekundären Klasse aufzurufen.

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace IT2127P2_150538B 
{ 
public partial class SummaryForm : Form 
{ 
    const double cupcakePrice = 1.50; 
    public SummaryForm() 
    { 
     InitializeComponent(); 
    } 

    private void SummaryForm_Load(object sender, EventArgs e) 
    { 

    } 

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




} 
} 
+0

_ "Jetzt muss ich die Anzahl der Cupcakes, Treuepunkte und den Gesamtpreis des Cupcakes im Code unten anzeigen" _ - okay, und so? Hast du eine Frage? Mit welchen Schwierigkeiten hast du Schwierigkeiten? Ihre Frage ist fast sicher ein Duplikat von https://stackoverflow.com/questions/1665533/communicate-between-two-windows-forms-in-c-sharp, aber es wäre gut, wenn Sie zumindest was erklären würden du fragst wirklich. Diese Frage ist alles andere als klar. –

Antwort

0

Unter der Annahme, dass Sie die „SummaryForm“ bis „Inputform“ nennen, dann überlasten einfach den Konstruktor der zweiten Klasse heißt SummaryForm und die Informationen durch sie hindurchtreten. d. h.

public SummaryForm(double dblCupcakes, int intLoyaltyPoints, int intTotalCupcakePrice) 
{ 
    InitializeComponent(); 
} 

Und dann verwenden Sie diesen Konstruktor beim Erstellen des Objekts in der InputForm-Klasse.

this helps

0

Sie haben zwei Möglichkeiten, entweder die Werte durch die SummaryForm construtor passieren.

public SummaryForm(int cupcakes, int loyaltypoints, double totalprice) 

Oder stellen Sie sicher, dass Ihre Variablen statisch sind. Dann können Sie ihre Werte bekommen.

+0

Froh, dass ich @MohanRam helfen konnte. –

+0

Ich habe ein Problem bei der Verwendung des zweiten Codes festgestellt. Es sagt "ist ein" Feld "aber wird wie ein" Typ "verwendet –

+0

Haben Sie es mit einem Typ oder einer Instanz aufgerufen? –

Verwandte Themen