Solved

VB.Net 2005 - Design Migration for WindowsForm Project

Posted on 2014-10-29
11
127 Views
Last Modified: 2014-11-21
Good Day Experts!

I have a design question I want to run by you.  My project has grown to a point where I need to make a change.  It is a std WindowsForm deal with a TabControl.  The functionality has grown such that I have 3 rows of tabs right now.  I don't want to make a 4th row as there is real estate issues.  

So, I am open to making a design change.  I was thinking of going to pull-down menus and grouping the tabs into topical areas.  But then I could not think of how to manage the control swapping on the form.  Would I just use panels to move into view based on the menu selection?  I am trying to avoid managing multiple forms.

What are your thoughts and opinions?  Please ask questions as I know I am probably light in my explanation.

Thanks,
jimbo99999
0
Comment
Question by:Jimbo99999
  • 3
  • 3
  • 2
  • +2
11 Comments
 
LVL 40

Accepted Solution

by:
Jacques Bourgeois (James Burger) earned 167 total points
Comment Utility
Have you thought about an MDI interface? Look at how an Access database is built. An application can have dozens of forms, but you open only the ones that you need.

Managing separate forms, each one with only the code that it needs, is usually easier than managing a great number of tabs whose code all ends up in one big file.

Working that way also has advantages compared to panels or tabs. Only the ones that are really needed are loaded in memory. You have events specifics to forms that you do not have with other types of containers. Users can put 2 forms side by side for some operations.
0
 
LVL 44

Expert Comment

by:AndyAinscow
Comment Utility
>>The functionality has grown such that I have 3 rows of tabs right now.
Personal feeling - yeuch.  

>>What are your thoughts and opinions?

More important - what are the feelings of the users AND how do they work.
0
 
LVL 44

Expert Comment

by:AndyAinscow
Comment Utility
ps.
By how do they work.  I mean how do they interact with the app, how do they use it?
0
 
LVL 15

Assisted Solution

by:ChloesDad
ChloesDad earned 167 total points
Comment Utility
We have had similar thoughts with our application, although we only had 1 row of tabs. The best solution that we found was this

Create a user control for each page, this will mean that most of the code can go in the user control not in the form itself (As James points out having a huge form with thousands of lines of code is unmanageable in the long term). You then place the user control on the appropriate tab page. If you need to pass information to/from the main form and the user control you have properties that can be read and written, you don't access the individual controls on the user control from the main form directly.
0
 

Author Comment

by:Jimbo99999
Comment Utility
AndyAinscow:

I am not sure what you mean by "yeuch"?

This app and the individual tabs play numerous functional roles.  But, in general it is a way to view data in various databases, generate reports, and in a few instances update data in a database.  Each of our departments here may use a group of the tabs while another department may use a completely different set of them.  A User may only use just one tab in his/her daily routine.  So, as more needs came up in the past, I just added another tab.
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 15

Expert Comment

by:ChloesDad
Comment Utility
Why not then hide the tabs that each user type does not need
0
 
LVL 44

Expert Comment

by:AndyAinscow
Comment Utility
Apologies for being brutal.

yeuch means horrible.
Three rows of tabs - to me means every possible thing has to be displayed no matter how useful or practical.  Little thought of design.

NOTE - now you are addressing this 'mess'.  As I mentioned earlier the best feedback you will possibly get as to how it should look and behave is from the end users.  Experts here can suggest things but they do not know how it is used in the real world.
0
 
LVL 83

Expert Comment

by:CodeCruiser
Comment Utility
Seems to me that you need to group tabs onto separate forms depending on the workflow of different user types.
0
 

Author Comment

by:Jimbo99999
Comment Utility
Hello:

I do hide tabs based on what the User is to see.  However, there are a few "Administrator users that need to see them all. At time of creation, the usage of my project was not anticipated to serve such a large functional role.  So, I am here having to upgrade it to the next generation.

CodeCruiser: I like the sounds of your suggestion.  Do you have a suggestion reading on the topic?

Thanks for the help,
jimbo99999
0
 
LVL 83

Assisted Solution

by:CodeCruiser
CodeCruiser earned 166 total points
Comment Utility
Hi,
Apologies for late reply. You basically need to have an MDI parent form (example) and then a number of forms for each of the user types. On each form, you can then use a tab control and define all the tabs specific to that user. Another option is to split forms by workflow type instead of user type. Example would be a form with many tabs which allows user to add a new employee with all the relevant information grouped on different tab pages.
0
 

Author Closing Comment

by:Jimbo99999
Comment Utility
Thanks for all of your suggestions.  I will take a look at them and determine which route I would like to go.

Have a nice day everyone,
jimbo99999
0

Featured Post

Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

Join & Write a Comment

Article by: Kraeven
Introduction Remote Share is a simple remote sharing tool, enabling you to see, add and remove remote or local shares. The application is written in VB.NET targeting the .NET framework 2.0. The source code and the compiled programs have been in…
Parsing a CSV file is a task that we are confronted with regularly, and although there are a vast number of means to do this, as a newbie, the field can be confusing and the tools can seem complex. A simple solution to parsing a customized CSV fi…
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …

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

11 Experts available now in Live!

Get 1:1 Help Now