C# Visual Studio - Kommunikation zwischen Forms?

1 Antwort

Form-Komponenten werden als private Felder ihrer Form-Klasse angelegt. Es ist von daher nicht verwunderlich, dass auf sie kein Zugriff besteht.

Zwei Lösungsvorschläge:

A)

Du legst je Button ein öffentlich sichtbares Property an (der Zugriff auf den Getter reicht völlig). Des Weiteren braucht Form1 eine Referenz auf das von dir erstellte Form2-Objekt. Über dieses kannst du dann das Property aufrufen und dieses wiederum ermöglicht Zugriff auf den jeweiligen Button.

B)

Da du sicherlich nur die Sichtbarkeit der Buttons ändern möchtest, würde es ausreichen, für Form2 eine öffentliche Methode zu schreiben, die einen bestimmten Button sichtbar macht. Welcher das sein soll, kann ja ein Parameter bestimmen (ein String / eine Zahl von 1-6 / ...).

Nun braucht Form1 nur noch eine Referenz auf das von dir erstellte Form2-Objekt. Über dieses kannst du dann die Methode aufrufen, die einen bestimmten Button ändert.

Falls dir Referenzen, Methoden, Sichtbarkeiten oder Properties noch nicht bekannt sein sollten, schau in die Microsoft Dokumentation und beschäftige dich mit den OOP-Grundlagen (die werden auch hier vorgestellt, beachte aber, dass dieses Buch noch nicht alle Verkürzungen vorstellt, die C# inzwischen bietet - falsch sind die vorgestellten Praktikten dennoch nicht). Die sind für diesen Teil relevant.

MurcyYie 
Fragesteller
 07.12.2020, 14:11

Hallo, danke für deine Antwort. Könntest du mir ein kurzes Beispiel verfassen, wie man eine öffentliche Methode für einen gewünschten Button (beispielsweise "button1") für form2 schreibt?

Danke schonmal im Voraus!

1