2010-10-17 25 views
1

J'ai un C# .net 2.0 winForm avec une zone de texte et une barre de suivi. L'événement Validating de la zone de texte définit e.cancel si l'utilisateur clique sur la barre de suivi et que la validation échoue. Je suis ensuite laissé avec le curseur dans la zone de texte, mais le focus de la souris est toujours sur la barre de suivi, donc déplacer la souris déplace la barre de suivi.C# L'événement Control.Validating laisse le focus sur les autres contrôles?

J'ai essayé SetFocus dans l'événement de validation (mauvais selon MSDN mais j'ai essayé quand même) mais la souris reste sur la trackbar.

Comment est-ce que je détache le focus de la souris de la trackbar?

Répondre

0
  • Affichez-vous le message d'erreur de validation dans une boîte de message. Si tel est le cas, la version de la barre de suivi de la souris n'aurait pas été déclenchée car la boîte de message aurait pris le contrôle et c'est la raison pour laquelle vous voyez la barre de déplacement se déplacer après avoir quitté la boîte de message. MessageBox et l'événement de validation ne se complètent pas bien l'un l'autre.
  • La meilleure façon de le faire est d'utiliser un ErrorProvider.