7
votes

Comment puis-je obtenir toutes les commandes d'un formulaire, y compris des contrôles dans un conteneur?

J'ai besoin, par exemple, un moyen de désactiver tous les boutons sous une forme ou de valider toutes les données de Textboxes. Des idées? Merci d'avance!


0 commentaires

4 Réponses :


23
votes

L'option la plus simple peut être de cascade: xxx

ou similaire; Vous pouvez bien sûr passer un délégué pour le rendre assez générique: xxx

alors des choses comme: xxx


3 commentaires

Ne répond pas vraiment à la question du titre - Comment obtenir toutes les commandes - ne pas éditer leurs propriétés.


@ N00dles à citer de la question: "J'ai besoin d'exemple pour désactiver tous les boutons sous une forme"


Après avoir écrit le commentaire, je pensais ... peut-être que c'est le titre qui a besoin d'édition. J'étais un peu irrité parce que je cherchais une réponse à la question du titre. Fait ça nw cependant. (D'un marc à un autre!)



4
votes

Essayez également:

public List<Control> getControls(string what, Control where)
    {
        List<Control> controles = new List<Control>();
        foreach (Control c in where.Controls)
        {
            if (c.GetType().Name == what)
            {
                controles.Add(c);
            }
            else if (c.Controls.Count > 0)
            {
                controles.AddRange(getControls(what, c));
            }
        }
        return controles;
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        var c = getControls("Button", this);

    }


0 commentaires

5
votes

Je préfère une approche paresseuse (itératrice) du problème, c'est ce que j'utilise: xxx


0 commentaires

0
votes

Je cherche une solution pour la même chose pour activer / désactiver des contrôles basés sur le type, j'ai donc proposé cette approche similaire à Luiscencio (vous pouvez également la modifier pour obtenir tous les contrôles ou modifier d'autres propriétés). < Pré> xxx


0 commentaires