Indirekter Aufruf

06/10/2010 - 13:14 von DIMIM | Report spam
kann man einzelnen objekten indirekt eigenschaften zuweisen?

z.b. ich habe 32 labels:
Z1, Z2, Z3, Z4, ..., Z32

in einem string-array ar (z.b. aus textbox, oder file herausgelesen),
habe ich eine auswahl erhalten. z.b.
1, 2, 5, 28

kann ich jetzt die eigenschaften visible, farbe, ... àndern, damit nur
die angegebenen labels sichbar sind, oder farbe xy bekommen, ...?

d.h. im obigen beispiel würden die labels
Z1, Z2, Z5 und Z28 sichtbar, alle andern nicht, wobei ich die
eigenschaft in einer schleife nach dem muster

(Label)("Z" + ar[i]).Visible = true;

setzen würde. gibt es eine solche möglichkiet einer indirekten
zuweisung von eigenschaften?
 

Lesen sie die antworten

#1 felix
06/10/2010 - 14:43 | Warnen spam
* DIMIM :
kann man einzelnen objekten indirekt eigenschaften zuweisen?



Diese Frage ist unglaublich unpràzise. Nichts an der weiteren Erklàrung
ist in irgendeiner Form "indirekt", außerdem ist nicht klar, was für
Labels das sein sollen. Es gibt im .NET Framework sicher nicht nur eine
Klasse namens Label.

z.b. ich habe 32 labels:
Z1, Z2, Z3, Z4, ..., Z32



Und hier bedeutet "haben"? Properties in der Klasse, in der du gerade
Code schreibst? Warum verwaltest du diese Labels dann nicht in einer
geeigneten Collection, z.B. "List<Label> Z"?

in einem string-array ar (z.b. aus textbox, oder file herausgelesen),
habe ich eine auswahl erhalten. z.b.
1, 2, 5, 28



Warum eigentlich ein string-Array, wenn doch Zahlen darin stehen?

kann ich jetzt die eigenschaften visible, farbe, ... àndern, damit nur
die angegebenen labels sichbar sind, oder farbe xy bekommen, ...?

d.h. im obigen beispiel würden die labels
Z1, Z2, Z5 und Z28 sichtbar, alle andern nicht, wobei ich die
eigenschaft in einer schleife nach dem muster

(Label)("Z" + ar[i]).Visible = true;



Einen string in eine völlig andere Klasse casten kann selbstverstàndlich
zu keinem sinnvollen Ergebnis führen.


setzen würde. gibt es eine solche möglichkiet einer indirekten
zuweisung von eigenschaften?



Was du wahrscheinlich willst ist, auf eine Property anhand eines zur
Laufzeit bestimmten Namens zuzugreifen. Schau dir dazu die Klasse
PropertyInfo an, und die Klasse System.Type (Ausgangspunkt dafür wàre
wohl typeof(NameDeinerKlasse)). Falls es um ASP.NET geht kann man auch
in einem Container ein Control anhand seiner ID finden: FindControl().

So oder so ist das keine Gute Lösung, weil sie ohne Not Overhead
einführt. Lege die Labels in eine geeignete Collection und das Problem
stellt sich nicht mehr.

Grüße,
Felix

Felix Palmen (Zirias) + [PGP] Felix Palmen
web: http://palmen-it.de/ | http://palmen-it.de/pub.txt
my open source projects: | Fingerprint: ED9B 62D0 BE39 32F9 2488
http://palmen-it.de/?pg=pro + 5D0C 8177 9D80 5ECF F683

Ähnliche fragen