Avrò scoperto l'acqua calda, ma...

In VB6 c'era l'array associativo dei controlli di una form, che permetteva di fare una cosa del tipo:

Me.Controls("txtNome")

e poi accedere alle varie proprietà.
Ho tentato di fare la stessa cosa in C#, ma non ho trovato un modo equivalente, se non con questa funzione:

private Control GetControl(Control container, string controlName)
{
System.Type t = container.GetType();
return t.InvokeMember(controlName, System.Reflection.
BindingFlags.NonPublic | System.Reflection.BindingFlags.GetField | System.Reflection.BindingFlags.Instance, null, container, new object[] {}) as Control;
}

Poi con

(TextBox)GetControl(this, "txtNome")

posso accedere alle varie proprietà.

Print | posted on venerdì 10 dicembre 2004 00:30

Comments have been closed on this topic.