Dave
Dave

Reputation: 5644

Managing Lots of Overlapping Controls in Visual Studio

I'm using different sets of controls on the same location on a form. By default all are visible=false and then certain subsets of the controls are set to visible as the user selects specific values in a combobox dropdown control.

From the user's perspective this works well since they only see the controls that are needed.

However, since the controls occupy the same location on the form it is difficult to manage these in Visual Studio design view.

Is there a way to group sets of these overlapping controls in Visual Studio so that I can select the entire subset of controls quickly and easily? Is there a way to hide certain controls in design view? Right now everything is stacked on top of each other when developing so it makes managing these controls difficult.

Upvotes: 11

Views: 6558

Answers (5)

Murat Tokgozlu
Murat Tokgozlu

Reputation: 1

This may sound very ordinary but my design practice and philosophy can be summarized as:

  1. If there are too many controls on one page, it is certain that they are not going to be needed simultaneously on the same page at run time. Therefore, it seems efficient to group them into user controls that can be edited on their own pages.
  2. When user controls are created separately, implementing them on a form does not even necessarily need a design page. They can be manipulated (location, size, color, etc.) in runtime S/W as in a 'Form activated' routine.
  3. Treating them as user controls not only hides them from the design page but also hides them away from the S/W and packs them in compact units (DLLs) that are far easier to handle in case of events like .NET version changes or other library changes.
  4. Having separate user control solution also gives the opportunity to pack a test program project with it where you can test the performance of the control much more accurately and do necessary improvements.
  5. This approach is more inline with OOP principles and encourages standardization and multi use of these controls.
  6. Last but not the least: If the form page is getting crowded with controls, a large monitor is certainly a must at design time, remembering VS scaling does not work all that well both in design and runtime. Even if perfect scaling was possible, the page may still not seem acceptable when the dimensions change.

For all these reasons I suggest taking advantage of user controls.

Upvotes: 0

Batu92k
Batu92k

Reputation: 1

First of all,

If you work with multiple components in same location, you can use groupboxes in your form. Then, to superimpose these groupboxes, you should edit each of your groupboxes on different place in your form screen. After the edit, you should input size and location data manually in your groupbox properties menu.

If you want to edit one of your groupbox after the set location, you can easily right click any of your groupboxes then click "send to back" and "bring in front" commands. I hope it helps.

Upvotes: -1

Hans Passant
Hans Passant

Reputation: 942478

A TabControl can do this, works well in design mode. You just need to hide the tabs at runtime. Check my code in this thread.

Upvotes: 5

Ram
Ram

Reputation: 11644

You can not hide them.

However you can group them in group box and using "Bring to front" and "Send to back" property deal with them.

Upvotes: 0

Oliver
Oliver

Reputation: 45109

To get such a beast to work i would put every group into it's own UserControl. On your MainForm you stack all these UserControls above each other.

So at the MainForm you can't really get a good overview, but now you got for every group your individual designer view and in your main form you can hide the complete group by a single line of code userControl.Visible = false.

Upvotes: 10

Related Questions