Von Form1, Label von Form2 verändern - C#?


29.01.2021, 12:48

Und sich dass auch speichert, wenn das Programm geschloßen wurde und wenn das Programm wieder geöffnet wurde, dass dann das Label von Form2 immer noch unsichtbar ist.

3 Antworten

Wie kann ich es programmieren dass wenn ich z.b. auf einen Button von Form1 klicke, das Label von Form2 unsichtbar wird?

Selektiere innerhalb des Design-Modus den Button und wähle im Properties-Dialog den Tab für Events. Dort kannst du einen Klick-Handler anlegen. In diesem kann das Label unsichtbar gemacht werden.

Um auf das Label von Form2 zugreifen zu können, muss deine Form1 eine Referenz auf das Form2-Objekt (in einem Feld) halten. Übergeben kannst du das Form2-Objekt als Parameter an ein Property oder den Konstruktor.

Um die Sichtbarkeit zu setzen, kannst du das Visible-Property nutzen.

Und sich dass auch speichert, wenn das Programm geschloßen wurde (...)

Du kannst dafür ein User Setting anlegen.

How To: Write User Settings at Run Time with C#

(...) und wenn das Programm wieder geöffnet wurde, dass dann das Label von Form2 immer noch unsichtbar ist. (...)

Selektiere innerhalb des Design-Modus das Form2-Element und wähle im Properties-Dialog den Tab für Events. Dort kannst du einen Handler für das Load-Event anlegen. In diesem kannst du das User Setting auslesen und anhand des Wertes entscheiden, ob du das Label unsichtbar machst oder nicht.

How To: Read Settings at Run Time With C#

Du kannst in Form2 eine entsprechende Methode machen, die aus Form1 aufgerufen wird.

Die Methode macht folgendes:

1) Sie blendet das Label aus

2) Sie setzt eine benutzerdefinierte Einstellung (Properties > Settings) auf true

In Form2.Load prüfst Du das Setting und wenn es true ist, blendest Du dort auch das Label aus.

je nachdem wie die beiden anderen antworten sind sehr gut ebenfalls währe das möglich

Form1:

Label labelVonForm2;
public void addRef(Label label)
{
  labelVonForm2 = label;
}

void irgendwas()
{
  labelVonForm2.Visibility = false;
}

Form2:

void Form2_Loaded()
{
  form1.addRef(label1);
}

zum verständnis mit diesen methoden gibst du der form1 in form des labelVonForm2 eine referenz von label1 mit der du label1 bearbeiten kannst wirkt am anfan seltsahm aber wenn man den unterschied zwischen klassen und structs versteht ist es ziehmlich klar

Woher ich das weiß:Hobby – Programmiere schon eine ganze Weile