Solved

.Net Focused control has box when tabbed to, but not on cnt.focus()

Posted on 2014-04-24
3
209 Views
Last Modified: 2014-04-29
I have several buttons on a form. If I tab to a button, there is a small box around the text. The box will then move with arrows, tabs or any calls to cnt.focus().

If I never tab to any buttons, I will not have the small box and arrows will not cause it to show, cnt.focus() will not cause it to show either.

I am using a flat style for the buttons with everything set to transparent, and the FlatAppearence.BorderSize=0. I am just changing the colors as the mouse enters/leaves the button's area. However with the tab, one can still see which button will be activated by [ENTER]; without the tab, the one cannot see, since all the buttons have the same color after the mouse exit (I do want that).

How do I cause the system to draw that box around the control that shows it has the focus just like the system does when I tab to the control?
0
Comment
Question by:bgraves
  • 2
3 Comments
 
LVL 40

Accepted Solution

by:
Jacques Bourgeois (James Burger) earned 500 total points
Comment Utility
Experience from older technologies, such as VB6, do not translate well to .NET. Take the time to read the documentation: Focus is a low-level method intended primarily for custom control authors. Instead, application programmers should use the Select method.

Select won't give you the small dashed box around the text in the button, but will at least give you the border around the button itself. The dashed box seems to be directly associated with the keyboard, and unfortunately, I have not found a way to force it through code. Even commands that simulate the keyboard such as SendKeys are useless for that purpose.

One thing you could do if you really attract the attention to the button when after a Select is to change its color on the Enter event, and bring it back to default on the Leave event.
0
 

Author Comment

by:bgraves
Comment Utility
Yes, of course, .focus or .select make no difference to the issue at hand.
I am, in fact, already changing the color on enter and restoring it on exit. BUT that is where the problem comes in. After exit, all the buttons look the same - however, windows knows that one of them is "selected" and if you were to press ENTER, that one will execute. The user, though, cannot see which button has this "magical" property. If he presses an arrow key, he can figure it out because the next button in sequence will get the color (so it must have been the previous one that was active). I should mention I do the same actions for enter/mouseEnter, leave, mouseLeave.

Again the problem is to show which button is the "selected" one. The dashed box is the perfect answer but, of course, it only shows when the TAB is pressed on the keyboard. I could introduce yet a third visual clue (color, background, etc.) but why not use the same method as Windows?

Does anyone know how to make the dashed box appear?
0
 

Author Closing Comment

by:bgraves
Comment Utility
There isn't a real solution to my problem, apparently. I assign a grade of B because its not a solution but certainly deserves recognition because he shows that there isn't a solution!
0

Featured Post

What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

Join & Write a Comment

Many admins will agree: WSUS is is a nice invention but using it on the client side when updating a newly installed computer is still time consuming as you have to do several reboots and furthermore, the procedure of installing updates, rebooting an…
Ever notice how you can't use a new drive in Windows without having Windows assigning a Disk Signature?  Ever have a signature collision problem (especially with Virtual Machines?)  This article is intended to help you understand what's going on and…
Windows 8 comes with a dramatically different user interface known as Metro. Notably missing from the new interface is a Start button and Start Menu. Many users do not like it, much preferring the interface of earlier versions — Windows 7, Windows X…
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now