rationalisation de la récupération de contrôle dans les formulaires Windows: une approche concise
L'identification de tous les contrôles d'un type particulier dans une application Windows Forms est souvent essentiel pour la personnalisation et l'interaction de l'interface utilisateur. Cet article présente des méthodes efficaces pour accomplir cette tâche.
Alors que l'itération de chaque contrôle et la vérification de son type est possible, une solution plus élégante exploite LINQ (Language Intégrée Query). La syntaxe de type SQL de Linq simplifie les collections de requête et de manipulation. Pour récupérer les contrôles correspondant à un type spécifique, utilisez la requête LINQ suivante:
var Ctrls = from ctrl in Me.Controls where ctrl.GetType() == typeof(TextBox) select ctrl;
Cela filtre de manière concise les commandes du formulaire, ne renvoyant que ceux de type TextBox
.
Pour une solution plus robuste gérant les commandes imbriquées, une méthode récursive offre une approche complète:
public IEnumerable<Control> GetAllControlsOfType(Control parent, Type type) { var controls = parent.Controls.Cast<Control>(); return controls.SelectMany(ctrl => GetAllControlsOfType(ctrl, type)) .Concat(controls) .Where(c => c.GetType() == type); }
Cette fonction traverse récursivement la hiérarchie de contrôle, renvoyant tous les contrôles du type spécifié à n'importe quel niveau de nidification. Appelez ça en utilisant:
var controls = GetAllControlsOfType(this, typeof(TextBox));
Les méthodes LINQ et récursives fournissent des moyens efficaces et propres de récupérer des types de contrôle spécifiques dans votre application Windows Forms, facilitant la manipulation et la personnalisation précises de l'interface utilisateur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!