J'ai un formulaire avec 2 boutons et 2 étiquettes.
Je veux définir le bouton 1 = tabIndex = 0, le bouton 2 = tabIndex = 1 et je ne veux pas définir un tabIndex sur les 2 étiquettes, ce qui signifie que si l'utilisateur appuie sur l'onglet, il passera du bouton 1 au bouton 2.
Comment pourrais-je m'y prendre?
Il suffit de définir la propriété TabStop des étiquettes sur false et la propriété TabIndex des boutons sur celui que vous souhaitiez. Vous pouvez le faire directement dans la fenêtre Propriétés du concepteur.
button1.TabIndex = 0;
button2.TabIndex = 1;
Les étiquettes par défaut ont TabStop défini sur false, ce qui signifie qu'elles ne doivent pas être activées en appuyant sur la touche tab.
Dans mon cas, toutes mes étiquettes n'ont pas TabStop property
.
Je ne peux même pas définir TabIndex à -1
non plus, car il dira Property value not valid
.
Mais je remarque qu’une fois que j’ai exécuté l’application, quelle que soit la valeur de mon TabIndex pour toutes mes étiquettes, elle ne s’arrête pas sur aucune étiquette lorsque j’appuie sur mon Tab.
La raison en est que les contrôles d'étiquette ne sont pas activés. Le seul moyen de faire en sorte qu'un contrôle Label devienne actif est d'appeler la méthode Label.Focus.
Pour plus d'informations, vous pouvez lire ce forum: Forum MSDN.
définir les propriétés de tabstop de l'étiquette sur false?
http://msdn.Microsoft.com/en-us/library/system.windows.forms.control.tabstop.aspx
sinon, il suffit de définir la valeur tabindex de l'étiquette sur la valeur précédant le bouton. Ensuite, vous pouvez utiliser les touches de raccourci pour cliquer sur le bouton.
Comme indiqué dans la documentation sur MSDN , la propriété TabStop est non pertinent pour le libellé class. Par conséquent, définir TabStop sur true n’a aucun effet. Donc, je vais mettre les index de l'étiquette à la fois sur 0 et le bouton 1 obtiendra l'index de tabulation 1 et le bouton 2 obtiendra l'index de tabulation 2