VB Notebook Main Page VB Notebook Files VB Notebook Function Library VB Notebook Articles VB Notebook Links VB Notebook

VBNotebook Home | Articles | Q&A Session: Bad User Interface Ideas

These questions (or ones like them) often appear in VB newsgroups and reflect some flawed or otherwise questionable ideas on building an user interface.

__________________________________________________________________________________________

Q1: I want to load 20000 part numbers into a combo box, but this doesn't seem to work. Any advice for me?

A1: Don't do it! 20000 items are way to many to ask a user to look through to find the one they want. Also, even if you could get this many items to load into a database, the overhead of loading and displaying such a large list would be enormous.

The way to do this is to build some sort of lookup system. Some third parties offer virtual combo boxes that do auto-lookups in the database based on user input into the text area and only keep a 100 or so items in the actual list area at a time. There are some limitations to this approach, primarily that it doesn't help the user narrow the selection down unless they already have a good idea of what they're looking for. In many cases, a search dialog that allows the user to narrow down the available records based on their choice of multiple criteria is a better idea.

__________________________________________________________________________________________

Q2: My program design requires that I have a tabbed dialog form with about 800 controls on it. I'm running into a lot of memory related problems and the form loads very slowly. What can I do to fix this?

A2: This is a lot of controls to ask a user to sort through, even on a tabbed dialog. You will want to first look at breaking this form up into several forms. This will lessen the level of difficulty for both you and your users. After examining this possibility, you should make sure that you are making the best use of the controls you are using. For example, if you are showing the same grid with the same data 5 different times, only use one grid control, not 5. You may also want to consider dynamically building the tabs as the user moves from tab to tab.

__________________________________________________________________________________________

Q3: I have a problem with the text in my text boxes and labels disappearing when they are disabled on certain systems. On other systems, they show up fine. Why does this happen?

A3: This situation occurs when the textbox's background color is set to the same color as the system's disabled text color. For example, if the disabled color is light gray and you set the text box's BackColor property to light gray as well, this will cause text not be visible when the box is disabled.

The proper solution is to follow the system colors. In this case, if the user selects/creates an incompatible/ugly color setup, it will be up to them to correct it so that things are visible and readable. If you decide to force colors upon users, it is likely that you will encounter a number of cosmetic display problems, ranging from ugly color combinations to invisible text, not to mention aggravating your users.

__________________________________________________________________________________________

Q4-A: I want to close all of the other open applications when mine starts so that it has all of the resources it needs to run fast. How can I do this?

Q4-B: Is there a way to disable or hide the icons on the desktop and start menu while my application is running?

A4: If this is being setup as a controlled system, such as an info kiosk, Point-Of-Sale, industrial control system or something similar, it is best to control this by setting system policies and/or using specialized hardware to prevent users from accessing or damaging the system. This provides the safest and sure method to prevent the system from being used incorrectly.

If this is a run of the mill business application, then it is the height of bad user interface design to do anything like this and you should reconsider your design.

__________________________________________________________________________________________

Q5: I want to remove the 'X' button from a MDI parent form and make it where the user can't resize this form at all.

A5: The answer is not to use a MDI implementation for this application. MDI stands for "Multiple Document Interface" and is geared toward presenting more than one document window to a user at a time. Attempting to circumvent this, while it can be done, is rarely a good use of your programming time and can easily cause users a variety of problems with your end result. From time to time I've called this the "square peg in a round hole" application or "attempting to use a hammer on a screw". If you need this level of control in your application, you should not use MDI to do it since it is designed with user flexibility in mind.

__________________________________________________________________________________________

Copyright 2000-2005, J. Frank Carr