2016-10-25 13 views
-1

Also hatte ich diese App gemacht, die in einer Konsole funktionierte. Es ist sehr einfach, ich erstelle einen Katalog in der Hauptklasse und engagiere ihn dann. Von diesem Zeitpunkt an werden alle Aktionen in einer Klasse namens "catalog" ausgeführt, die Konsole wird von dort gelesen, so dass alle Variablen in dieser Klasse lokal sind.C# Windows Forms, wie kann ich eine Variable aus einem Formular in einer anderen Klasse verwenden?

Jetzt musste ich diese App in Windows Forms neu erstellen. Nach ein paar Stunden lernen, wie man es benutzt, stand ich vor einem großen Problem. Während ich jetzt weiß, wie ich die Variablen lesen kann, die ich brauche, habe ich bemerkt, dass ich sie nicht in einer anderen Klasse verwenden kann.

Bisher habe ich eine Zeichenfolge gelesen, und ein Array von ganzen Zahlen (ich verwendete ArrayList) in einem Formular. Nun muss ich auf diese beiden Variablen (String-Name und ArrayList numbersUsed) in meiner Katalogklasse zugreifen, aber sie sagt, dass sie "nicht im aktuellen Kontext existieren".

Wie kann ich die Variablen aus Formularen in anderen Klassen lesen? Ich bin ein absoluter Anfänger mit C#, also tut mir leid, wenn das eine grundlegende Frage ist.

+1

Pass es in seinem Konstruktor –

+0

einen Konstruktor für die neue Klasse erstellen, die die beiden Variablen als Parameter übergeben wird. Oder machen Sie die Variablen public und übergeben Sie stattdessen einen Verweis auf Ihr Formularobjekt, das diese Variablen enthält. – EMUEVIL

Antwort

1

Initialisieren Sie ein neues Formular wie folgt und übergeben Sie Daten im Konstruktor an dieses Formular.

ArrayList arr = new ArrayList(); 
string str =""; 
Form2 form2 = new Form2(str, arr); 

Constructor:

public Form2(string strvar, ArrayList arrList) 
     { 
      //Use strvar and arrList 
      InitializeComponent(); 
     } 
Verwandte Themen