Est-il possible que le formulaire principal puisse intercepter les événements qui déclenchent un sous-contrôle sur un contrôle utilisateur?Comment récupérer des événements à partir de sous-contrôles sur un contrôle utilisateur dans une application WinForms?
J'ai un contrôle utilisateur personnalisé intégré dans le formulaire principal de mon application. Le contrôle contient divers sous-contrôles qui manipulent des données, lui-même affiché par d'autres contrôles sur le formulaire principal. Ce que j'aimerais, c'est que le formulaire principal puisse être en quelque sorte informé lorsque l'utilisateur change de sous-contrôle, afin que je puisse mettre à jour les données et l'affichage correspondant ailleurs.
En ce moment, je triche. J'ai un délégué branché à l'événement de mise au point des sous-contrôles. Ce délégué modifie une propriété du contrôle utilisateur que je n'utilise pas ailleurs (dans cette cause, CausesValidation). J'ai alors un délégué défini sur le formulaire principal pour quand la propriété CausesValidation du contrôle d'utilisateur change, qui dirige alors l'application pour mettre à jour les données et l'affichage. Un problème survient parce que j'ai aussi un délégué mis en place quand le focus quitte le contrôle de l'utilisateur, parce que je dois valider les champs dans le contrôle utilisateur avant que je puisse permettre à l'utilisateur de faire autre chose. Cependant, si l'utilisateur ne fait que basculer entre les sous-contrôles, je ne veux pas valider, car il se peut qu'ils ne soient pas modifiés.
Fondamentalement, je veux que les données à mettre à jour lorsque l'utilisateur bascule sous-contrôles OU laisse le contrôle de l'utilisateur, mais pas valider. Lorsque l'utilisateur quitte le contrôle, je veux mettre à jour et valider. À l'heure actuelle, laisser le contrôle utilisateur déclenche deux fois la validation.
Quel est le problème de lier la forme principale aux différents événements des contrôles? Il ya une tonne d'événements qui tirent pour la plupart des contrôles winform – Sekhat
Je pense que je ne comprends pas ce que vous voulez réaliser: P – Sekhat
Pour répondre à la première question, à travers le concepteur (qui est ce que je, relativement nouveau à C#, utilisait pour mon édition de GUI), mon formulaire a seulement accès aux événements soulevés par le contrôle de l'utilisateur, et non ses sous-contrôles. Ce dont j'ai oublié de me souvenir, c'est que je peux déclencher mes propres événements et les gérer. –