odwołanie do textBox w C#

0

Witam, mam zmienną typu string nazwa = "textBox1".
Jak wykonać taką prosta czynność jaką jest np. textBox1.Text = "test", ale odwołując się lub korzystając ze string nazwa.
Proszę nie pisać, że można tak to zrobić:

string nazwa = "textBox1";
if(nazwa=="textBox1") textBox1.Text = "test";
 

szukam rozwiązania
bardziej uniwersalnego. Coś w stylu (nazwa).Text = "test"; oczywiście jest to wyssany z palca zapis (nie działający).
Z góry dzięki za pomoc.

0

zapomniałem dopisać, że chodzi o (win ce) compact framework. :)

0

ok, trochę czasu minęło ale w końcu zabrałem się za to.
jak by kogoś interesowało jak to zrobić w win ce, to ja to zrobiłem tak:

 
        private Control FindControlByName(string name)
        {
            foreach (Control c in panel3.Controls) //assuming this is a Form
            {
                if (c.Name == name)
                    return c; //found
            }
            return null; //not found
        }

...
((TextBox)FindControlByName("nazwatextboxa")).Text = "jakis tekst";

pozdr

0

Można też tak:

private static T FindControlByName<T>(Control parent, string name)
    where T : Control
{
    return parent.Controls.OfType<T>().FirstOrDefault(q => q.Name == name);
}

A jeśli chcemy rekurencyjnie:

private static T FindControlByNameRec<T>(Control parent, string name)
    where T : Control
{
    T r = parent.Controls.OfType<T>().FirstOrDefault(q => q.Name == name);
    if (r != null) return r;

    foreach (Control c in parent.Controls)
    {
        r = c.Controls.OfType<T>().FirstOrDefault(q => q.Name == name);
        if (r != null) return r;
    }

    return null;
}

Użycie:

TextBox t = FindControlByNameRec<TextBox>(this, "textBox1");
0

dziękuję dobry człowieku :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1