2012-11-14 2 views
0

Je suis en train d'écrire du code dans winforms en utilisant vb.net et j'essaye d'empêcher un datagridview de perdre le focus quand certaines conditions d'erreur de règle métier utilisateur existent. Lorsque les erreurs existent, j'ai un code dans l'événement leave qui permet de se recentrer sur lui-même. Cependant, cela ne semble pas fonctionner complètement car les boutons du formulaire peuvent toujours être cliqués. Est-ce que quelqu'un sait comment garder le focus sur la grille de données et ne pas autoriser le clic sur les boutons sans désactiver le bouton lorsque l'utilisateur entre dans la vue de données? J'écris un contrôle datagridview personnalisé et je veux une routine générale pour garder le focus sur le contrôle datagridview et ne pas permettre aux boutons du formulaire d'être cliqués.Winforms Empêche DataGridView de perdre le focus

Répondre

0

Il y a une certaine chaîne d'événements qui se produisent pendant la transition d'un contrôle à l'autre. Il y a une description de cela in this msdn link.

Je vous recommande de trouver un moyen d'adapter vos règles métier à ce modèle, car c'est le but des hooks de validation pour les contrôles. Surtout si vous créez votre propre contrôle, vous pouvez également encapsuler une partie de votre logique de validation en utilisant ces événements.

0

Pour empêcher le formulaire de modifier le focus sur les erreurs de validation, définissez la propriété AutoValidate du formulaire sur EnablePreventFocusChange. http://msdn.microsoft.com/en-us/library/system.windows.forms.autovalidate(v=vs.100).aspx.

Pour empêcher l'envoi de boutons lorsque des erreurs de validation existent, définissez la propriété CausesValidation du bouton sur true. http://msdn.microsoft.com/en-us/library/system.windows.forms.control.causesvalidation(v=vs.110).aspx