Hallo Dabra
wenn du wirklich nur eine Fachliste für dein ganzes Programm benötigst, dann könntest du diese als
static anlegen (entweder in der Hauptform oder aber in einer extra Klasse, wie von dir beschrieben).
Um auf eine
static-Variable zuzugreifen, mußt du dann den Klassennamen davor angeben, z.B.
C#-Quelltext
Evtl. hast du vergessen, diese Membervariable als
public (oder
internal) zu deklarieren, denn sonst kannst du bei dem impliziten
private nur von der eigenen Klasse darauf zugreifen.
Gerade für
public-Membervariablen benutzt man in C# aber (automatische) Eigenschaften (properties):
C#-Quelltext
1:
| public static List<Fach> FachList { get; private set; } |
Leider kann man diese nicht an dieser Stelle initialisieren, sondern muß dann im (statischen) Konstruktor der Klasse noch die Zuweisung durchführen:
C#-Quelltext
1: 2: 3: 4:
| static Form() { FachList = new List<Fach>(); } |
So kannst du dann von überall mittels
Form.FachList darauf zugreifen.
Idealerweise würde man aber diese Liste in einer eigenen Klasse halten und am besten diese per Referenz an alle benötigten Form-Instanzen weitergeben.
Aber probiere ersteinmal den oben von mir beschriebenen Weg aus.