Setting the TabIndex property of many form controls in Visual Studio? - winforms

What is the most efficient way to set/re-order the TabIndex properties of many form controls in Visual Studio? When I change the layout on a large form, or even on initial design, I often wonder if there's a faster way than clicking each individual control then setting the TabIndex in the properties window.

While in Designer mode, select Tab Order from the View menu then click on each control in the order you want. Then remember to turn off Tab Order when you're finished, otherwise when you select a control to do something else you lose the work you've just done (I wish Tab Order would turn off when you Save..)

Bring up the Form in design mode.
Click the View Menu -> Tab Order
Then a little number will show up on each form representing its tab order. Now click each item in order that you want their tab order set.

To bring up the tab order in VS2012 while in Design View Click on the actual form then goto VIEW / TAB ORDER then this will enable the tab order window.
once you have finished changing the tab order go back to VIEW / TAB ORDER this will deactivate the tab order layout

In case some other will have the same issue(you may also see print screens in link):
First step: as you are in Design View of your form in menu go to View and select Tab Order. Second step: on your controls will appear a number that represents the Tab Order of your control. For re - setting tab order press a click in ascending order the controls that want to succeed, including Labels(even they are not selectable). I hope it is very intuitive this step for you too.
Print screens at: http://how-to-code-net.blogspot.ro/2013/06/how-to-set-tab-order-for-controls-in.html

Related

How can I get back my lost Checkboxes (after moving them from the Form to the Panel)?

I placed several panels on my form. When I clicked the central panel in the designer, the main form was what was actually selected (even though the panel should be on top of it, and the main form should not be (easily) clickable in the designer).
By the way, clicking the other panels on the form don't have this problem (all of the other panels are on top of the form).
Because of the form being clicked when I expected that I was clicking the panel, when I added several controls to what I thought was the panel (after successfully adding some labels on top of the panel), all of these controls (checkboxes) ended up on the form / below the panel, so that they don't display at runtime:
When I realized that the controls were on the form, and not on the panel, I selected the form from the Property browser, selected all of the checkboxes at once, and cut the group of them.
I then selected the main panel from the Property Browser, and pasted those cut checkboxes onto the panel. It sort of worked, but all I saw was their outline (all selected together). I used the Ctrl+Up arrow to move them in a body up on the panel, a little at a time, until they were all near the top where they belong. But then they just disappeared.
From now on I will make sure to right-click the panel and select "BringToFront" before adding any controls to that area; for now, though, I don't see the checkboxes on either the form or the panel. How can I get them back (and place them on the panel), and prevent the form from ever appearing on top of the panel (except if/when I select it from the Property browser)?
The checkboxes do still exist, although their names were changed from "ckbxAll" etc. to Checkbox1, etc. They appear on the correct panel in Form1Designer.cs, but do not display. Here is how they are represented there:
// panelMain
//
this.panelMain.BackColor = System.Drawing.Color.White;
this.panelMain.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.panelMain.Controls.Add(this.checkBox21);
this.panelMain.Controls.Add(this.checkBox20);
this.panelMain.Controls.Add(this.checkBox19);
this.panelMain.Controls.Add(this.checkBox18);
this.panelMain.Controls.Add(this.checkBox17);
this.panelMain.Controls.Add(this.checkBox16);
this.panelMain.Controls.Add(this.checkBox15);
this.panelMain.Controls.Add(this.checkBox14);
this.panelMain.Controls.Add(this.checkBox13);
this.panelMain.Controls.Add(this.checkBox12);
this.panelMain.Controls.Add(this.checkBox11);
this.panelMain.Controls.Add(this.checkBox10);
this.panelMain.Controls.Add(this.checkBox9);
this.panelMain.Controls.Add(this.checkBox8);
this.panelMain.Controls.Add(this.checkBox7);
this.panelMain.Controls.Add(this.checkBox6);
this.panelMain.Controls.Add(this.checkBox5);
this.panelMain.Controls.Add(this.checkBox4);
this.panelMain.Controls.Add(this.checkBox3);
this.panelMain.Controls.Add(this.checkBox2);
this.panelMain.Controls.Add(this.checkBox1);
this.panelMain.Location = new System.Drawing.Point(160, 0);
this.panelMain.Name = "panelMain";
this.panelMain.Size = new System.Drawing.Size(639, 740);
this.panelMain.TabIndex = 2;
//
UPDATE
It turns out they ARE there, but they are invisible now (except for their outlines when I click on them):

Tabbed Reports in SSRS

I have been working on reports in Sql Server Reporting services and I am trying to create a tabbed report.
I wish to have a main report which read in parameter details from the user then in the report there are tabs to other reports which use the same parameter details entered by the user on the main report.
Anyone got any idea how to go about this ? Have tried creating subreports but it doesnt quite create that overall feel of a tabbed report.
There is no native feature for tabs, but you can create that functionality with a combination of existing features.
Add textboxes along the top which will be your tab names.
Add a hidden parameter which will track which tab is selected. Have the first value selected by default.
Add an action to each textbox which goes back to the report with a specific value passed to the parameter.
Add an expression to the border properties of each textbox so that you can visually see which one is selected. For example you can remove the bottom border for the selected tab.
Add a visibility expression to everything else on the report so that the items only show up when their tab is selected.
Now each time you click a tab, it will refresh the report and show that tab highlighted along with the content it contains. It's a lot of steps, but it's the best workaround I've found for this feature.

Sizing panels in an ItemsControl

I have a parent view model, that contains a collection of other view models (of same type) (children). On Initialization the number of children will be decided (varying).
The child View consists of a button and a list box. Initially the listbox is hidden. On click of button the list box appears and on clicking outside (outside of the control or any other child button).
On init only buttons will be shown. I want these buttons to be spaced across the available width. The requirement is that once the button is clicked (when listbox is shown) the width of the whole child will increase (lets say 350) and when it is hidden it reverts back to the original size.
In the parent i am using a ItemsControl to show the children views. I have tried all controls but not able to figure ou a appropriate solution for this. I have two issues:
On Button click i am able to show current listbox. If i click another button teh first one goes off. Till here it works fine. But i also need that the currentopen listbox closes on click anywhere outside of the control (child control)
How to automatically size and resize based on what is clicked . First all should be propotionately sized and then when one is clicked it's size increases (here other childs resize with the rest available space). When the one (open control) is collapsed, all of them come back to normal proptionate sizes.
Any ideas ?
BTW, i am using MVVM pattern for this.
how about using a flag to direct the view to perform calc and refresh/readjust the sizing as when needed.
like on-click routine, set the flag on
whenever the view (pre-)painting/drawing event is kicked in, check if the flag is on, do the calc and sizing, then off the flag.

How do I keep the tab order within the currently selected sub-form in Visual Studio 9?

I'm working on a hand me down application for work and the tabbing order is a mess. First I should note that there are many, many (even 4 layers nested...) sub-forms with multiple tabs. There are two main sub-forms side by side in the app. Now, I know how to set the tab order within my currently selected sub-form (which happens to be on the left side), but the problem is when it reaches the last field in my selected sub-form, it jumps over to the second sub-form on the right side and starts going through each of those fields.
Ideally, I would like the tabbing to stay within my currently selected sub-form, so it will just cycle between the fields in that particular form. Is this possible?
Any help is appreciated, thanks in advance!
You have more options, here are two:
Each subform has some datacontext it binds to? Attach the IsTabStop of controls to some property for that and manage that as you change subforms.
Eat the Tab keypress on the main control of you active subform. Register to the PreviewKeypress and if the key is a TAB, and the current control is the last of your subform put focus to the first and eat it with isHandled.

Winform and Tab?

When setting up a Winform with textbox controls, and going to View Tab Order -
how do you indicate when you are done setting tab order and want it to be saved?
Is there any other way to set the Tab Order of the controls on the form?
When you are finished, click the tab order again or press Esc.
You can set the tab order using the Tab Index property either in design mode or at runtime.
To indicate that you are done, hit ESC.
You can change the tab order by setting the TabIndex property on the controls themselves
When you begin setting the tab order you klick the tab order button. When you are done you click it again to disable it.
You can set the tab order number in each controls properties sheet or at runtime via the TabIndex value.

Resources