Mnemonic for ComboBox - c#

How can we add mnemonics for ComboBox?
For example, in a CheckBox, in the caption we can say 'Check&BoxCaption', notice the '&' before 'B'. In the form, this 'B' gets underlined and we can access it by pressing Alt+B (as a keyboard shortcut).
But how do we do this in case of ComboBox?
Check mnemonic implemented on Visual Studio Options page in a label against a ComboBox
I am guessing (checking the screenshot above), we create a mnemonic in the label against the ComboBox.
How do we link it to the ComboBox, in that case?

The control itself does not support a hotkey. This is handled through label controls. Since labels cannot have the focus, selecting a label will give the focus to the next control in the tab order.
So add a label control to your form and give it a hotkey by inserting the '&' character before the hotkey character. Make sure the label control has a tab index value that is one less than your combo box so that the combobox is the next control in the tab order after the label.
This is the same way it works for other controls as well, such as text boxes and other lists.

Related

Highlight certain controls when hovering above a button

I have the following case:
There are several list boxes where the user can select something, some text boxes to enter text and several buttons to execute commands.
If a button is not enabled (due to a wrong/missing selection in a list box and/or a wrong entry in a text field), I'd like to show the red error adorner around the elements that needs to be fixed.
I know how I can show the red border when a entry is not correct using Validation rules - but they are not applicable since the fact "is correct" depends on the command the user wants to execute. E.g. to add an element, there is no need for a selected element in a listbox, but if you want to delete one, there needs to be a selected one.
You should use an attached behavior on the button itself. Then, hook the MouseEnter and MouseLeave events for the button.
Then all you have to do (when the mouse enters and exits the button) is fill out the validation rules for each control you want to "turn on or off" for the validation box.

Textbox focus skipping on pressing TAB

I have app where I have multiple textboxes and I would like to do when the user is focused in one textbox when he presses TAB button on keyboard I would like to skip the focus into other textbox which I will set.
Is there any way to do that easily? I have 20 textboxes in this form and I need it to skip from textbox1 to textbox2 to textbox3....textbox20 when press the TAB key.
First of all you have to set the tab index of each text box,
you can set either from the properties window (for each textbox ) or set by selecting the menu
view->Taborder.
you can set the tab index and by pressing the Tab key the control wil automatically transfer from 1 textbox to another.
Sounds like you're looking for the TabIndex property, which is an integer value you can assign to controls either in code or in the designer properties window:
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.tabindex.aspx
See also the TabStop property:
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.tabstop.aspx
Example:
TextBox1.TabIndex = 2;
TextBox2.TabStop = false;
TextBox3.TabIndex = 99;
With focus on TextBox1, pressing tab will jump to TextBox3, then back to TextBox1, and obviously TextBox2 is skipped.
in c# every Control has a property called tabStop and tabIndex
setting the tabIndex one after the other will make that when you press tab from one one textBox you'll get focus on the other
if you want a control not to get focus when pressing tab, though i'm not sure u want, but your question isn't clear on that so i didn't want you to miss it, put true in tabStop

How to prevent menu (ContextMenuStrip) to steal focus from my TextBox control?

I am trying to replicate an intellisense like feature where you have a textbox and a menu that's shown below it. I know intellisense doesn't use ContextMenuStrip, but my version has to have categories which are sub-menu items.
So as soon as the user clicks into my TextBox, I bring up the menu below once, but then even though I can see the caret in my TextBox it doesn't receive any key inputs. I have to click inside the TextBox again but that removes the menu from the screen.
Is there a way to prevent this? Or perhaps make the menu persistent on the screen without stealing focus?
ToolStrip control with items added to it seems to work since it's always on the form.

How can I make the order of components correctly in C# (Window Form application)?

I'm creating a program using C# and I have lots of textbox and buttons.
The thing is when I type something into textbox and type 'tap' button, it goes to weird area.
I mean, after I finish typing in the first textbox, I want to move to the second textbox using 'tap' button but it goes to third textbox (because I made third one before second one)
Is there any way to fix this easily? or should I make them from scratch?
Thanks
In the designer you should see a "TabIndex" property, use this as a sequence to specifiy the tab order: when you press 'Tab' the focus pass to the item having the index immediately grether than the current.
Each control has a TabIndex property.
Start with the first control in the tab order being 1 and increment it in the next control.
Yes you can use the TabIndex property for this purpose
Assign 0 to first Textbox
Assign 1 to 2nd Textbox
Assign 2 to 3rd Textbox
Assign 3 to 4th Textbox
and so on
When you press the Tab button focus goes to control with 0 tab index and then 1 and so on
You will want to set the tab order of your controls. See How to: Set the Tab Order on Windows Forms for details on how to do that.

Tabbing to invisible control in WinForms

I have a note editor control in my Windows Forms application:
alt text http://img82.imageshack.us/img82/2033/tabtohiddencontrol.png
I want to make this control accessible through the keyboard: I want to be able to TAB to it, TAB through the controls, and TAB out of it.
Normally this is an easy task, however, the issue is the hidden subject textbox. By design, the subject is editable only when the user clicks on the subject label.
When my control receives focus, I want to start editing the subject; make the subject text box visible and focused.
WinForms doesn't like this; my subject text box is hidden, and so WinForms skips over it when tabbing in and out of my control. How can I make this work?
You will have to add code in previous code's lostfocus (or keypress to check for TAB). And, you will have to add code in next control (after the label textbox) to check for Shift+TAB.
You could also add a label before Subject with mnemonic, so user can press ALT+S to reach there.
This is what I could think of right away.
Correct me, if I have not understood your question.
When the user clicks on the subject label, unhide the subject textbox and set the focus to it.
Controls must be visible and enabled to be part of the tab order; you cannot tab into a control that is invisible or disabled.

Categories

Resources