Hi,
Ich programmier grade (eine Art) 4 gewinnt in C# Windows Forms.
Ich hab mir ne eigene Klasse gemacht, die das ganze steuert (und solche Methoden wie "ZugMachen", "GewinnenPrüfen" "GewinnAuslösen" hat) und ne Punkteverwaltung durchführt.
In der Statusleiste der Form hab nen Label, wo ich gerne die Punkte anzeigen würde.
Dann hat sich das Problem gestellt, wie ich es aktualisiere.
Denn ich kann aus der Klasse selbst nicht auf die Steuerelemente der Forms-Anwendung zugreifen und hab in der Forms-Anwendung bisher keinen Ort, bei dem ich in der Forms-Anwendung etwas mache, zu dem Zeitpunkt, wenn jemand gewinnt (wo ich es ja aktualisieren will), da das alles die Klasse macht.
Da die Punkteanzahl frei aufrufbar ist (public), könnte ich einen Timer benutzen, aber die Möglichkeit find ich extrem dumm.
Ich könnts auch bei jedem Zug machen, da hab ich das Mouse_Click Event, aber das wär auch irgendwie schlecht (95% der Zeit ändert sich nichts).
Ich hab mir gedacht:
Kann ich ein Event in der Klasse definieren, die ich gemacht habe, dieses in der "GewinnAuslösen"-Funktion auslösen und bewirken, dass durch das Auslösen des Events etwas in der Forms-Klasse passiert (die ein Objekt der Spielklasse, wo das Event deklariert wird, enthält)?
Ich hab mich bei den ganzen Event-C#-Anleitungen nicht so recht ausgekannt, aber wie ich gesehen hab, greifen die niemals von außerhalb der Klasse, wo es definiert ist, auf ein Event zu (oder lassen es handeln).