How do I disable a tab index on a control on a form?

我是研究僧i 提交于 2019-12-08 14:35:21


I have a form with 2 buttons and 2 labels.

I want to set button 1 = tabIndex = 0, button 2 = tabIndex = 1 and I do not want to set a tabIndex to the 2 labels, meaning that if the user presses tab, it'll go from button 1 to button 2.

How would I go about doing this?


Just set the TabStop property of the Labels to false and the TabIndex property of the Buttons to whatever you want. You can do it right in the Properties window of the designer.


button1.TabIndex = 0;
button2.TabIndex = 1;

Labels by default have TabStop set to false which means they shouldn't get focus by pressing tab.


set the label's tabstop properties to false?

otherwise, just set the label's tabindex value to the value before the button. Then you can use accelerator keys to click on the button.


In my case, all my Labels don't have TabStop property.

I cannot even set the TabIndex to -1 either, since it will say Property value not valid.

But I notice that once I run the application, regardless on what value I have on my TabIndex for all my labels, it doesn't stop on any labels when I press my Tab on my keyboard.

The reason for this is that Label controls do not get focus. The only way to cause a Label control to gain focus is to call the Label.Focus method.

For more info, you can read this forum: MSDN Forum.


As per the documentation on MSDN, The TabStop property is not relevant for the Label class, so setting TabStop to true has no effect. So i will set both label's tab indexes into 0 and button 1 will get tab index 1 and button 2 will get tab index 2