I'm having a problem with a custom button I have created in c# win forms.. The button appears fine when the form is selected but as soon as I click away from the form a border appears on the button. A good example of when this happens is when the desktop is clicked but the form is still maximised so you can see its contents. An image of the problem can be seen below:
This does not happen on all buttons, only when the button has been clicked prior (only appears on one button at a time). This lead me to believe that it was something to do with the button focus cues but these are set to false. The border is set to 0 and I also have tabstop set to false.
Any suggestions?
When you're dealing with a custom button you should set:
button.TabStop = false; button.FlatStyle = FlatStyle.Flat; button.FlatAppearance.BorderSize = 0;
Then since ButtonBase
doesn't support the border color on Color.Transparent
, you can overcome the issue by setting an Argb color:
button.FlatAppearance.BorderColor = Color.FromArgb(0, 255, 255, 255); //transparent
fuex's answer can remove border in theory, but there is a bug that sometimes button will still have focus cue after you change the button enable status.
(I ran into this bug in .Net 4.0 and I don't know the bug is fixed or not in later versions).
To work around this bug, you should disable the ShowFocusCues
property:
protected override bool ShowFocusCues => false; // return base.ShowFocusCues;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With