Zugriff auf Controls in C#

the-cR

Mitglied
Eine Frage zum Zugriff auf Controls in C#...

Ich habe auf einer Form "Form1" ein Control, z.b. eine Textbox "txtBlub" - auf diese kann ich innerhalb der Klasse mit txtBla.Text auf die Texteigenschaft zugreifen.

Was ist jedoch, wenn ich auf txtBlub.Text von einer anderen Klasse aus zugreifen will.. wie gehe ich dann vor?


Vielen Dank
 
Du kannst eine Referenz an den Construktor übergeben wenn die den Textbutton enthaelt als Container der Klasse mit der Du auf den Textbutton zugreifen willst fungiert.
Code:
das heisst :
class Zugreifer
{
  Textbox refBox;
   zugreifer(ref Textbox box)
   {
     this.refBox = box;
   }
}

class Container
{
  Textbox myBox;
  Container()
  {
   this.myBox = new Textbox();
   Zugreifer zg = new Zugreifer(ref myBox);
  }

}

Sicherlich ein fehler bei referenzen habe auch schon länger nicht mehr C# programmiert ;)
 
Hm selbstverständlich... hätte ich auch drauf kommen müssen. Allein schon von der OOP Architektur her wäre es unlogisch, einfach andere Objekte aus einer "entfernten" Klasse heraus zu verändern... das wäre ja gegen die Idee von C#.

Allerdings kommt da noch ne Frage auf, wenn ich beide "ref" schlüsselwörter weglassen, dann funktioniert alles ebenfalls. Ich verstehe zwar die Funktion von "ref", jedoch will es mir nicht ganz in den Sinn warum es bei der Übergabe an die Methode einen Sinn macht.. gäbe es in dem von Dir oben beschrieben Fall einen Unterschied, wenn man "ref" einsetzt oder nicht?

Danke (nochmals ;)

P.S. Man könnte auch - fällt mir gerade ein - auf die Controls zugreifen, indem man sie als public static deklariert. aus anderen Klassen heraus könnte man dann mit Form1.txtMeineTextbox darauf zugreifen...
 
Zuletzt bearbeitet:
Zurück