121 votes

Comment faire pour supprimer une zone de texte dans C#/WinForms

J'ai besoin de supprimer le focus à partir de plusieurs zones de texte; j'ai essayé d'utiliser:

textBox.Focused = false;

mais la propriété est en lecture seule. J'ai ensuite essayé le réglage de la focalisation sur la forme, ainsi que pour le retirer de toutes les zones de texte, mais cela ne fonctionne pas:

this.Focus();

et la fonction renvoie false lorsqu'une zone de texte est sélectionnée. Alors, comment puis-je supprimer une zone de texte?

Merci à l'avance.

125voto

Henk Holterman Points 153608

Vous avez besoin de quelques autres focusable de contrôle pour déplacer le focus vers.

Notez que vous pouvez définir le Focus à un Label. Vous pourriez envisager de l'endroit où vous voulez la touche [Tab] pour prendre la prochaine.

Notez également que vous ne pouvez pas définir la Forme. Conteneur de Contrôles de Formulaire et Panneau de passer le Focus à leur premier enfant de contrôle. Ce qui pourrait être la zone de texte que vous vouliez déménager.

70voto

WhySoSerious Points 560

En se concentrant sur l'étiquette n'a pas fonctionné pour moi, de faire quelque chose comme label1.Focus()droit? la zone de texte encore a le focus lors du chargement du formulaire, cependant essayer Velociraptors réponse, a travaillé pour moi, la définition de la Forme Active de contrôle de l'étiquette comme ceci:

private void Form1_Load(object sender, EventArgs e)  
{ 
  this.ActiveControl = label1;       
}

67voto

FTheGodfather Points 24

Vous pouvez ajouter le code suivant:

this.ActiveControl = null;  //this = form

33voto

Spencer Ruport Points 24589

Essayez activation et la désactivation de la zone de texte.

9voto

Velociraptors Points 1509

Focus définit le focus d'entrée, afin de le mettre en forme ne fonctionnera pas parce que les formes ne pas accepter d'entrée. Essayez de définir la forme de l' ActiveControl de la propriété d'un autre contrôle. Vous pouvez également utiliser Select pour sélectionner un contrôle spécifique ou SelectNextControl pour sélectionner la commande suivante dans l'ordre de tabulation.

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