Je dois supprimer le focus de plusieurs TextBoxes. J'ai essayé d'utiliser:
textBox1.Focused = false;
Sa ReadOnly
valeur de propriété est true
.
J'ai ensuite essayé de mettre le focus sur le formulaire, afin de le supprimer de toutes les TextBoxes, mais cela ne fonctionne pas non plus:
this.Focus();
et la fonction retourne false
lorsqu'une zone de texte est sélectionnée.
Alors, comment supprimer le focus d'une zone de texte?
Se concentrer sur le label n'a pas fonctionné pour moi, faire quelque chose comme ça
label1.Focus()
? la zone de texte a toujours le focus lors du chargement du formulaire, mais essayer la réponse Velociraptors a fonctionné pour moi, en définissant le contrôle Active du formulaire sur l'étiquette comme ceci:la source
this.ActiveControl = panelOnMyForm;
Vous pouvez ajouter le code suivant:
la source
Essayez de désactiver et d'activer la zone de texte.
la source
textBox1.Enabled = false;
désactivera votre zone de texte. et le paramétrer surtrue
le réactivera.Vous pouvez également définir la
activecontrol
propriété forms pournull
aimerla source
Focus
définit le focus d'entrée, donc le définir sur le formulaire ne fonctionnera pas car les formulaires n'acceptent pas l'entrée. Essayez de définir laActiveControl
propriété du formulaire sur un contrôle différent. Vous pouvez également utiliserSelect
pour sélectionner un contrôle spécifique ouSelectNextControl
pour sélectionner le contrôle suivant dans l'ordre de tabulation.la source
Select()
j'ai travaillé pour moi.Essaye celui-là:
Commencez par configurer l'ordre des onglets.
Ensuite, dans l'événement de chargement de formulaire, nous pouvons envoyer une touche de tabulation par programmation à l'application. Ainsi, cette application donnera le focus au 1er contrôle dans l'ordre de tabulation.
sous forme de chargement, écrivez même cette ligne.
Cela a fonctionné pour moi.
la source
Ce post m'a amené à faire ceci:
Cela me permet de capturer toutes les entrées du clavier au niveau supérieur sans que les autres commandes ne deviennent fous.
la source
J'ai trouvé une bonne alternative! Cela fonctionne mieux pour moi, sans mettre l'accent sur autre chose.
Essayez ça:
la source
Je l'ai fait sur mon contrôle personnalisé, je l'ai fait surFocus ()
Donc, si texbox se concentre - il focalise instantanément le parent de la zone de texte (formulaire ou panneau ...) C'est une bonne option si vous voulez faire cela sur un contrôle personnalisé.
la source
Il semble que je n'ai pas à mettre l'accent sur d'autres éléments. Sur une application Windows Phone 7, j'utilise la méthode Focus pour désactiver le focus d'une zone de texte.
Donner la commande suivante mettra le focus sur rien:
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.focus.aspx
Cela a fonctionné pour moi, mais je ne sais pas pourquoi cela n'a pas fonctionné pour vous: /
la source
Une solution simple serait de tuer le focus, créez simplement votre propre classe:
la source
la source
La façon dont je me débrouille est de placer tous mes contrôles winform. Je crée toutes les étiquettes et les contrôles winform non sélectionnés comme ordre de tabulation 0, puis mon premier contrôle comme ordre de tabulation 2, puis incrémente l'ordre de chaque contrôle sélectionnable de 1, donc 3, 4, 5, etc.
De cette façon, lorsque mes Winforms démarrent, le premier TextBox n'a pas le focus!
la source
vous pouvez le faire par deux méthodes
faire glisser deux zones de texte
la source
Si tout ce que vous voulez, c'est l'effet optique que la zone de texte n'a pas de sélection bleue sur tout son contenu, ne sélectionnez simplement aucun texte:
Après cela, lors de l'ajout de contenu avec
.Text += "..."
, aucune sélection bleue ne sera affichée.la source
Veuillez essayer de définir
TabStop
surFalse
pour votre contrôle d'affichage qui n'est pas focalisé.Par exemple:
la source
Dans le constructeur du Form ou UserControl contenant le TextBox write
Après le InitializeComponent (); Source: https://stackoverflow.com/a/4811938/5750078
Exemple:
la source