Autor Beitrag
vreden123
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 95
Erhaltene Danke: 2



BeitragVerfasst: Fr 11.02.11 12:42 
Hallo,

vorher hatte ich meine ganzen Funktionen in der Klasse Form1.cs.

zB.
ausblenden C#-Quelltext
1:
pB_play.Image = img_green_play;					

kamm in einer Funktion vor, die ein Bild in der Form1 veränderte.

Jetzt habe ich eine neue Klasse erstellt die sich function.cs nennt.

Wenn ich jetzt den Code:
ausblenden C#-Quelltext
1:
pB_play.Image = img_green_play;					

in der Klasse function.cs ausführe kommt eine fehlermeldung weil sich ja das Bild nicht in functionen.cs befindet sondern in Form1.cs
Wie muss ich den Code verändern damit sich das Bild in Form1.cs ändert?

Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4808
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 11.02.11 14:01 
Warum hast denn den den Code ausgelagert?

Wenn es darum geht, daß du allgemeingültige Klassen bzw. Methoden haben willst, so kannst du diese selbstverständlich erstellen. Du solltest dabei aber keinen Zugriff zu bestimmten Controls einer Form haben, sondern mittels Parametern bzw. Rückgabewerten arbeiten.

Du könntest z.B. deiner Methode das erstellte Image (img_green_play) zurückgeben lassen und dann in der Form mittels
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
// in Form

pB_play.Image = MyFunctions.CreateImage(); // hier müßte die Methode dann static sein

// bzw.
MyFunction myFunctions = new MyFunctions(); // kann auch eine Membervariable sein
pB_play.Image = myFunctions.CreateImage(); // als nicht-statische Methode

die Zuweisung durchführen.

Alternativ kannst du natürlich auch das Image (bzw. die PictureBox) als Parameter übergeben, falls du innerhalb der Methode darauf lesend zugreifen möchtest.

Bzgl. Kommunikation zwischen Forms bzw. Klassen kannst du dir auch mal meinen Artikel Kommunikation von 2 Forms durchlesen.