Ich möchte eine Reihe (sechs um genau zu sein) von Windows Forms Etiketten in einem Array speichern. Es gibt sechs Labels, die der Namenskonvention orderLabel0
, orderLabel1
... orderLabel5
folgen.Zugriff Variable über seinen String-Namen C#
Ich mag die Zeiger auf die orderLabels in einem Array speichern:
Label[] orderLabels = new Label[6];
for(int index = 0; index < 6; index++)
{
orderLabels[index] = orderLabel + [index]; //Error!
}
Der Code irgendwie die Zeichenfolge als Variablennamen behandeln muss und sich als „Etikett“ und nicht als String in der orderLabels Array . Mit anderen Worten, wenn auf orderLabels[0]
zugegriffen wird, greife ich tatsächlich auf orderLabel0
.
Forschung hier und da haben mich zu dynamic
, Reflection
und Dictionary
Optionen geführt. Sie erfordern jedoch alle die Angabe der Objektnamen (korrigieren Sie mich, wenn ich falsch liege), und ich versuche, die Regel "Do not Repeat" selbst zu befolgen, indem ich das Objekt nicht sechsmal angeben muss.
Bitte beraten, danke.
eine hashmap schaffen ... ich finde es, dass es sehr komisch, wenn ich die meisten dieser Fragen google genau krank einen Stapelüberlauf erhalten Frage mit der Antwort. http://StackOverflow.com/Questions/1293549/String-to-Variable-Name – Mozzie
untergeordnete Steuerelemente sind bereits im übergeordneten Container Steuerelemente Eigenschaft gespeichert – Sehnsucht
Besteht "orderLabel0" zu "orderLabel5" bereits auf Ihrem Formular? – Seany84