In .NET windows forms you can’t not have a default button on a dialog

I haven’t tested if this only applies to forms shown with ShowDialog or to every form, but the form will always have a default (accept) button – the one receiving enter presses.

Setting the AcceptButton property to null will nevertheless select a button as the default button. Actually the AcceptButton property is complety ignored. Don’t believe anything on the MSDN page. The only thing that decides which button receives an enter press is which control has focus.

So what can you do if you don’t want a button to has focus when first showing the form? A control must have focus, and it must be visible. But nothing stops you from placing it in an invisible position such as setting Left to -1000. Set it as the form’s ActiveControl and set TabStop to false, meaning that the user won’t get back to the dummy button when tabbing around.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.