Laden...

Von Form aus auf Elemente einer UserControl zugreifen

Erstellt von BAUHAUS vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.609 Views
B
BAUHAUS Themenstarter:in
103 Beiträge seit 2006
vor 17 Jahren
Von Form aus auf Elemente einer UserControl zugreifen

Hi,

gleich eins vorne weg. Bitte keine Kommentare wie "Das hatten wir schon. Benutze die Forumssuche". Ich hab schon gesucht, aber nix passendes gefunden.

In meiner Form füge ich eine UserControl1 mit

Controls.Add(Usercontrol1) hinzu und des klappt auch alles ganz wunderbar.

Aber wie kann ich jetzt zum Beispiel auf labels und buttons auf meiner UserControl1 zugreifen?
Ich möchte so etwas:

variable = UserControl1.label1.text;

Aber das geht ja net. Weil er laut Fehlermeldung keine Definition für das label hat.

_
227 Beiträge seit 2006
vor 17 Jahren

du hast ja irgendwo in deinem Code

MeinUserControl control = new MeinUserControl();

dann kannst du mit control.Property aufsämtlihce Public properties des Kontrols zugreifen

B
BAUHAUS Themenstarter:in
103 Beiträge seit 2006
vor 17 Jahren

Ne, so was gibts bei mir gar net? 🤔

Ich hab keine 'Property'.

3.170 Beiträge seit 2006
vor 17 Jahren

Hallo,
Dein Control Hat eine 'Property' namens Controls und die hat eine Methode Add().
Aber das sind echt Grundlagen, ohne das böse zu meinen empfehle ich Dir, ein Buch zu lesen;

http://www.galileocomputing.de/openbook/visual_csharp/

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

3.170 Beiträge seit 2006
vor 17 Jahren

Nochmal hallo,
jetzt hab ich ja gar nichts zu der Frage gesagt...
Du kannst im Designer des UserControls den Unterkontrollen in den Eigenschaften Modifiers auf public setzen. Dann hast du von aussen Zugriff. Oder Du schreibst eben in Deinem UserControl Propertys über die Du das Control zugreifbar machst.
Du kannst aber auch die Property z.B. nur für den zu setzenden Text schreiben:

public string LabelText
{
  get { return label1.Text; }
  set { label1.Text = value; }
}

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

4.221 Beiträge seit 2005
vor 17 Jahren

Original von MarsStein
Du kannst im Designer des UserControls den Unterkontrollen in den Eigenschaften Modifiers auf public setzen. Dann hast du von aussen Zugriff.

Ist nicht empfehlenswert so vorzugehen.... der Rest ist ok

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

3.170 Beiträge seit 2006
vor 17 Jahren

@Programmierhans

Ist nicht empfehlenswert so vorzugehen.... der Rest ist ok

Da hast Du recht. Deshalb habe ich das Codebeispiel gebracht, das ist m. E. auch die beste Variante;
allerdings finde ich bei einem UserControl das nun nicht ganz so schlimm, die Unterkontrollen public zu machen -> das Control selbst wird ja normalerweise noch private instanziert.

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo BAUHAUS,

Bitte keine Kommentare wie "Das hatten wir schon. Benutze die Forumssuche".

Warum nicht? Wenn du fragen kannst, was du willst, dann können wir doch auch antworten, was wir wollen. Zumal es ja stimmt. Zum Beispiel liefert schon der vierte Treffer nach zugriff usercontrol erhellendes.

herbivore