C# Von Form2 bei form1 die textbox änder?

2 Antworten

Dafür gibt's viele Wege. Es hängt vom gesamten Design ab. Form2 könnte ein Event auslösen, das in Form1 behandelt wird und die entsprechende Aktion ausführt.

Woher ich das weiß:Studium / Ausbildung – Datenverarbeitungs-Kfm, Hobby- und Profi-Programmierer
tigertropfen119 
Fragesteller
 15.10.2020, 00:06

hey sorry aber ich habe davon gar keine ahnung ich bräuche denn code so schnell wie es geht hätten sie eventuell eine project vorlage oder ein gutes video schon mal danke im voraus :)

0
tigertropfen119 
Fragesteller
 15.10.2020, 00:42

https://prnt.sc/uzh9aj (ist ein screenshot)

0
DonkeyShot  15.10.2020, 00:47
@tigertropfen119

Ok und was ist die Fehlermeldung? Vermutlich ist der Bezeichner nicht public. Controls sind standardmäßig als "private" deklariert. Das kannst du im Entwurf der Form bei der Eigenschaft "Modifiers" ändern.

1
regex9  15.10.2020, 13:12
@tigertropfen119

Und zu Fehler 2: Die Methode (bzw. genauer der Konstruktor) erwartet ein Objekt (_form1), keine Angabe eines Klassennamens.

Bezüglich des Namens deiner Textbox: Der impliziert derzeit, dass es sich da (laut üblicher Namenskonvention) um ein Feld handelt, kein Property. Wenn es ein Property ist, beginne den Namen mit einem Großbuchstaben. Wenn es ein Feld ist, lege stattdessen ein Property für die Textbox an.

Das Text-Property wird mit einem großen T geschrieben.

Generell würde ich dazu raten, erst einmal mit Konsolenanwendungen als Umgebung zu starten, wenn du mit objektorientierten Grundlagen noch nicht vertraut bist (und das ist wohl noch der Fall).

0
Von Experte Dultus, UserMod Light bestätigt

Ich möchte einmal behaupten, das ist die meistgestellte Frage zu Windows Forms, zumindest hier auf GF.

Deine Form2-Instanz benötigt eine Referenz auf das Form1-Objekt. Du kannst sie auf verschiedenen Wegen überreichen. Zum Beispiel als Parameter für den Konstruktor oder über ein öffentlich zugängliches Property.

Hier ein Beispiel für Variante 1:

class Form2 : Form
{
  private readonly Form1 _form1;

  public Form2(Form1 form)
  {
    _form1 = form;
  }

  protected void OnButtonClick(object sender, EventArgs e)
  {
    _form1.YourLabel.Text = "Some other text";
  }
}

Wenn das Objekt erstellt wird, musst du irgendwie eine Referenz auf das genutzte Form1-Objekt heranschaffen. Da ich dein Projekt nicht genauer kenne, kann ich da nicht genauer darauf eingehen.

Form2 form = new Form2(form1Instance);
form.Show();
Dultus, UserMod Light   15.10.2020, 08:10

Einfache und richtige Antwort - unterschreibe ich auch 100%.

LG

0