Obtenez tous les boutons dans un formulaire, y compris les boutons du panneau de la même forme .. p>
3 Réponses :
Essayez ceci
La récursion peut utiliser en cas de panneau contient un autre panneau avec un bouton.
List<Control> list = new List<Control>(); GetAllControl(this, list); foreach (Control control in list) { if (control.GetType() == typeof(Button)) { //all btn } } private void GetAllControl(Control c , List<Control> list) { foreach (Control control in c.Controls) { list.Add(control); if (control.GetType() == typeof(Panel)) GetAllControl(control , list); } }
Voici ce que j'ai fait, J'ai écrit une fonction simple, lorsque je clique sur un bouton, je sélectionne uniquement le contrôle du panneau et transmettez-le à une fonction pour une boucle supplémentaire via la commande sur ce panneau.
private void cmdfind_Click(object sender, EventArgs e) { try { foreach (Control control in this.Controls) { if (control.GetType() == typeof(Panel)) //AddToList((Panel)control); //this function pass the panel object so further processing can be done } } catch (System.Exception ex) { MessageBox.Show(ex.Message); } }
Votre question n'est pas assez claire.
Vérifiez ceci Stackoverflow.com/questions/3419159/...
Vous pouvez également vérifier ceci: Stackoverflow.com/Questtions/253937 / ...