2010-01-07 3 views
0

Je voulais ajouter un événement pour une zone de texte à gérer lorsqu'elle perd le focus. J'étais sûr de me souvenir d'une sorte d'événement LostFocus, mais je ne l'ai pas vu dans la grille Propriétés. Mais bien sûr, l'événement existe si j'y accède par programmation. J'utilise VS2008 - quelle est la raison pour laquelle cet événement (et peut-être d'autres?) N'apparaît pas dans la grille des propriétés?Pourquoi certains événements n'apparaissent pas dans la fenêtre des propriétés de Visual Studio?

Répondre

6

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.

est ici la déclaration:

[BrowsableAttribute(false)] 
public event EventHandler LostFocus 
+0

+1 Je suis curieux de savoir pourquoi? Est-ce parce qu'ils veulent que nous utilisions plutôt Enter et Leave? – Coincoin

1

LostFocus est un événement gênant, c'est la copie fine à partir du SDK docs pour WM_KILLFOCUS, le message Windows sous-jacent:

Lors du traitement de ce message, ne pas faire des appels de fonction qui affichent ou activent une fenêtre. Cela provoque le thread pour donner le contrôle et peut provoquer l'application pour cesser de répondre aux messages. Pour plus d'informations, voir Deadlocks de messages.

Utilisez l'événement Leave à la place.

Questions connexes