0 votes

Pourquoi certains événements ne s'affichent-ils pas dans la fenêtre propriétés de Visual Studio?

Je voulais ajouter un événement pour un champ de texte pour gérer quand il perd le focus. J'étais sûr de me rappeler d'un événement LostFocus, mais je ne l'ai pas vu dans la grille des propriétés. Mais en effet, l'événement existe si j'y accède de manière programmative. J'utilise VS2008 - y a-t-il une raison pour laquelle cet événement (et peut-être d'autres?) n'étaient pas affichés dans la grille des propriétés?

6voto

Jason Points 125291

Control.LostFocus est marqué avec [BrowsableAttribute(false)]. Cela signifie qu'il ne sera pas affiché dans la fenêtre Propriétés. Pour plus de détails, voir BrowsableAttribute.

Voici la déclaration:

[BrowsableAttribute(false)]
public event EventHandler LostFocus

1voto

Hans Passant Points 475940

LostFocus est un événement problématique, voici le texte en petits caractères des documents SDK pour WM_KILLFOCUS, le message sous-jacent de Windows :

Lors du traitement de ce message, ne pas effectuer d'appels de fonctions qui affichent ou activent une fenêtre. Cela fait que le thread cède le contrôle et peut provoquer l'arrêt de l'application pour répondre aux messages. Pour plus d'informations, voir les blocages de messages.

Utilisez plutôt l'événement Leave.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X