Pourrait Étiquette d'obtenir une mise au point?
J'ai une question sur mon test de l'université sur le C#. Pourrait étiquette d'obtenir une mise au point? Comme je peux voir sur le site MSDN, toutes les Commandes peuvent faire une idée, mais certains d'entre eux ne sont pas sélectionnables. Donc, il me semble que la bonne réponse est "Étiquette pourrait faire une idée, mais je ne pouvais pas être sélectionné". Aussi l'Étiquette a un Focus() la méthode. S'il vous plaît, m'aider à comprendre. Merci.
Windows Forms ou ASP.NET?
J'utilise Windows Forms.
J'utilise Windows Forms.
OriginalL'auteur Daria | 2011-04-17
Vous devez vous connecter pour publier un commentaire.
Oui, il y a un
Focus()
méthode sur l'Étiquette et oui, il est tout à fait juste, il fonctionne; mais se comportent différemment. laissez-moi vous expliquerUne Étiquette peut être associée à une entrée de contrôle, par exemple une étiquette pour un nom d'utilisateur champ de texte, il est donc concept de
Associated Control
avec l'étiquette. AssociatedControlID sur msdnDe sorte que vous pouvez associer un contrôle d'entrée avec une étiquette et à chaque fois que l'étiquette est sélectionnée, le transfert du contrôle à l'entrée de contrôle.
Exemple ici cliquez sur e-Mail ou Mot de passe étiquettes dans la boîte de dialogue de connexion et de voir ce qui s'est passé, même si vous appelez la méthode focus sur l'étiquette, l'accent sera transmis à la commande associée.
Pour WinForms, le contrôle avec l'onglet suivant indice de recevoir le focus lorsque vous essayez de définir le focus à un
Label
de contrôle. Disons, par exemple, que vous avez une étiquette avec un onglet index de 0 et une zone de texte avec un onglet index de 1. Lorsque vous essayez de définir le focus sur l'étiquette, la zone de texte sera automatiquement la mise au point.Oui, merci @Cody Gris, je l'ai compris déjà.
OriginalL'auteur Waqas Raja
De la la documentation:
Depuis un Étiquette de contrôle n'est pas sélectionnable, il ne peut pas recevoir le focus d'entrée, même s'il hérite d'une
Focus()
méthode deControl
. Par conséquent, la réponse est pas.Focus
ouCanFocus
propriétés est vraiment hors de propos. L'API Windows (qui WinForms est basé autour) est une règle absolue sur les contrôles qui peut recevoir le focus. Une étiquette (utilisé pour l'affichage de statique texte) est l'un de ceux qui peuvent jamais obtenir le focus. Pas d'exceptions.OriginalL'auteur Frédéric Hamidi
Il est facile de findo si un contrôle de l'autorité de certification d'obtenir le focus. Il suffit de lire la
propriété qui est héritée de la classe de Contrôle.
Les contrôles Windows Forms dans la liste suivante ne sont pas sélectionnables. Les contrôles issus de ces contrôles sont également pas sélectionnable. (voir La documentation MSDN)
Aussi:
Si vous avez besoin d'une Étiquette de contrôle de type que vous pouvez vous concentrer, il suffit d'utiliser une zone de texte et le rendre en lecture seule. Quelques autres propriétés (styles, pas sélectionnable, etc.) et vous avez terminé.
Merci à vous. C'est clair.
OriginalL'auteur splattne
Vous verrez qu'il y est une propriété en lecture seule appelée CanFocus sur une étiquette, si vous avez un coup d'oeil à cette propriété pendant le débogage, vous verrez que c'est faux.
Chaque contrôle qui hérite de Contrôle a le focus de la méthode, mais cela ne signifie pas qu'il ne peut être porté.
Non, l'étiquette elle-même ne peut pas obtenir le foyer, même si la méthode est exposée
OriginalL'auteur TBohnen.jnr
Étiquette ne reçoit le focus, mais il s'intensifie à l'entrée du champ spécifié dans sa "pour" attribut. Comme:
Dans ce scénario, si vous cliquez sur l'étiquette qu'il va jeter le focus sur le champ de saisie "firstname" associés.
OriginalL'auteur Naveed Ahmad
C'est un an, mais j'ai eu un problème similaire, comme l'Op. Dans mon cas, c'était un contrôle utilisateur qui avait une seule étiquette (amarré à remplir) sur elle (elle a d'autres fonctions dans les coulisses - c'est un calendrier de contrôle et affiche un sélecteur de date - pas de la norme une - en un panneau (popunder) ou un formulaire (popup)).
La question il n'y a que les contrôles utilisateur sont vraiment conçus comme des conteneurs et de résister à l'accent (en le poussant hors de contrôle des enfants) - que l'étiquette est le seul enfant de contrôle, il arrête le UserControl se concentrer. L'aide en lecture seule zone de texte est un pauvre substitut, comme il manque de l'alignement vertical et doit être multiligne pour la taille de la hauteur.
La raison pour laquelle je ajouter ce qui suit comme une réponse ici, c'est parce qu'il EST possible (désolé les gars qui a dit ici qu'il ne l'est pas) et j'ai trouvé ce post et beaucoup d'autres qui ont peu d'aide quand j'ai regardé. De toute façon, la façon de le faire est de remplacer l'Étiquette et de l'ensemble de la SetStyle - aussi la OnPaint pour dessiner un rectangle de focus (j'manuellement drew mine DrawFocusRectangle ne semble pas faire quoi que ce soit) - donc, comme ci-dessous:
Je ne suis pas sujet de moi-même qu'il est accademically (puriste vue) droit de le faire, mais qu'il y a de valable reasosn pour permettre une sortie de contrôle (comme l'étiquette) parfois obtenir le focus.
OriginalL'auteur Wolf5370