Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Pruchod vsemi controly formulare v C#

Zdravim! Prosim o radu, jak projit vsechny controly ve formulari. Nize uvedeny kod mi ignoruje controly umistene na TabControlu a vypise pouze nazev TabControlu bez controlu, ktere jsou na nem umisteny.

Predem diky za pomoc.
H2O

private void ProjdiSePoFrm()
{
for (int i = 0; i < this.Controls.Count; i++)
{
MessageBox.Show(this.Controls[i].Name.ToString());
}
}

Předmět Autor Datum
No ono je to správně, protože ty controly nejsou na Formu, ale na na TabPage. Můžeš si tu metodu Pro…
Wikan 24.02.2009 08:28
Wikan
To by si nemal písať správičky.... ALe odpoveď je jednoduchá. Tvoj control sa nachádza v controle v…
Len tak 24.02.2009 08:32
Len tak
Diky, to je ono. Za zpravicku se omlouvam, nejak jsem se ukliknul :) poslední
h2o 24.02.2009 08:44
h2o

To by si nemal písať správičky.... ALe odpoveď je jednoduchá. Tvoj control sa nachádza v controle v controls. Najlepšie je ho vyhľadať rekurzívne :


public Control FindControl(string Name, ControlCollection Controls)
{
    foreach (Control c in Controls)
    {
        if (c.Name == Name)
            return c;
        else
        {
            var r = FindControl(Name, c.Controls);
            if (r != null)
                return r;
        }
    }
    return null;
}

// Použitie je už veľmi jednoduché.

var r = FindControl("Panel", Tab1.Controls);

// alebo

var r = FindControl("Panel", this.Controls);

Ak ti funkcia vráti NULL tak Control nenašlo.

Zpět do poradny Odpovědět na původní otázku Nahoru