In the Learning Edition of VB there were only 4 ActiveX controls, but in the Professional Edition of VB, Microsoft has provided 20 additional controls. Some are very excellent and some you may never use. In this section of the tutorial I provide a few comments about each one, trying to give some useful pointers on the use of each control. I strongly suggest that you review the control summary chart, which is a zipped Excel spreadsheet that lists the VB controls - along with their properties, methods, and events. The spreadsheet will help you get a "big-picture" overview of the VB controls (both Intrinsic and Pro). Equally strongly, I suggest you read the HELP file content for each of the properties/events/methods for these controls. If you don't know that the property or method of an object exists, then you won't know when to apply it in your applications!
As with the Intrinsic controls, not all of the ActiveX controls are equally useful. Some you will use on many applications but you will use others only when you have a special need for the features the controls offer.
When you start VB, none of the ActiveX controls are displayed in the Toolbox. Only the intrinsic controls are displayed, so you must manually insert the ActiveX controls into the Toolbox as you need them. To do so, right-mouse click on the toolbox and go to "Components", select the controls to put on the toolbox and press "OK".
A little tip - in the start-up box for VB you can select to open a project which contains every ActiveX control that VB installed. You might have missed it because that option is at the end of the list of project types that VB can open for you when you use the "File/New" menu. Here's a picture of the Toolbox with all of the Pro controls loaded.
All of the ActiveX controls are contained within OCX files. None are built-in to VB. In some cases, Microsoft put more than one control into an OCX file. We'll give the file names later.
The Most Useful ActiveX Controls
Of course, everyone will have their opinion but since it's my tutorial I get to give my own opinion for the most popular Pro controls. These nine intrinsic controls are pretty much used on every VB application I've written. Start your learning with these and then branch out. Further down on this page I have a brief comment on each of the controls.
Coolbar |
Progress Bar |
ImageList |
Tabbed Dialog |
Internet Transfer Control |
Tab Strip |
ListView control |
ToolBar |
Multimedia control |
|
The Specialty ActiveX Controls
Some of the VB controls are very excellent tools, but they simply aren't needed in many applications. This list of controls are ones that would be on my list of the best controls except that they are just not needed that often:
Communication control |
RichTextBox |
Data Repeater |
SysInfo |
MAPI |
Winsock |
MSChart |
|
The Rest of the ActiveX Controls
Of the remaining ActiveX controls, I find some useful but mostly they sit un-used on my PC. It doesn't mean they don't perform their features well, it just means that my own applications don't find the need for the features very often.
Animation |
MonthView |
DateTimePicker |
PictureClip |
FlatScrollBar |
Slider |
ImageCombo |
UpDown |
MaskedEdit |
|
Comments on Each Control
One of the things you'll notice is that I use a few controls a lot, and don't make a heavy effort to use every available control. I've thought about it a lot and wonder if VB programmers out there are like me, or if everyone uses their favorites over and over? You'll have to decide for yourself which approach makes sense. In the comments that follow I provide some of the logic which pulls me to one of these controls, or what it is that keeps me away!
Animation Control
Communications Control
There really are some excellent reasons to become familiar with the MCI
control. Programs like Laplink are hugely successful, primarily over their
ability to work through the serial and parallel ports of a PC. I believe that
98% of all programmers never have that need. For the remaining two percent,
however, this control can be a god-send.
CoolBar Control
The concept is great - give your program a look and feel like that of other
programs that your users are familiar with. In practice, most of our users have
been exposed to so many windows programs that an Explorer-like interface or a
Win3.1 application interface are all so easily understood that unless your user
is picking between your program and a second one, I don't believe the
look-and-feel will buy you any more users. Take advantage of it if you want, or
just use what you're familiar with.
DataRepeater Control
I tend to do things manually. Any control which automatically performs tasks
for me tends to be ignored so long as I can get the job done with tools I'm
already familiar with. This is a habit I really need to break. As I've said
before, a programmer's job is to get the job done quickly and economically.
Under those guidelines, controls such as the data repeater should be high on my
list. I'll work on it!
DateTimePicker Control
So far, I've never written a program which needed a calendar. I've done many
where a date was entered but usually the date was the current date and that was
easy to provide to the user. I can see where some programmers could put this to
good use.
FlatScrollBar
The only thing that would entice me to use this is that it can be made to take
on both horizontal and vertical orientations. That makes it pretty versatile.
Otherwise, I'm not interested.
ImageCombo Control
This solves a problem which a lot of VB programmers have asked for, putting
graphics in a list. It's more effort to program than a simple text list, but if
you want the graphics then it's the way to go.
ImageList Control
I use the Toolbar control a lot! Since the Toolbar gets its images from this
control, then that means I have to give this one a thumbs up! I need it, I like
it, and I use it all the time.
Internet Transfer Control
From what I've read, this is much improved over the version that came with VB5.
Many of my users are corporate employees from engineering areas. Their needs
rarely require an over-the-next solution so my experience on this one is
minimal. However, since it is the only internet control in VB, then by
definition you will use it if you have needs for Internet applications.
ListView Control
The four controls - the listbox, the common dialog control, the TreeView and
this one (ListView) can pretty well handle display of data in simple or
hierarchical methods. It's a useful control, but not one that you cannot live
without.
MAPI Controls
This is an excellent example of a control, which is very specialized, so much
so that no one I know, uses it. I have no doubt someone does, but I just
haven't met them yet.
Masked Edit Control
You'd think that this control would be one of the most popular there was and
that Microsoft would have made it an intrinsic control. But, it just didn't
turn out that way. The earlier versions of the control gave it a very bad
reputation and it doesn't seem to have recovered from it. It's not exactly the
easiest to work with and the actual operation isn't as trouble-free as I'd
like. I don't use it but I think about it a lot!
MonthView Control
Calendars in a program out to be very useful. Every PIM has one so why haven't
my own applications had them? Maybe if I'd had this control in VB5 I'd be
further along the learning curve.
MSChart Control
Yep - when I need a chart I use this one. Actually I don't like it all that
much. It has a huge number of properties and I never seem to get all of them
working together the way I want. Even so, it comes with VB and it can be made
to do the job, so I use it.
Multimedia Control
As I mentioned, I mostly do engineering-oriented applications. The use of .wav
and .avi files would be fine, but for my needs I would want to create the
.wav/.avi files myself and VB has no means of doing so. If you can use stock
files from someone else, then this control is really a valuable tool. It's the
only control in VB that does what it does, so it must also be the best one!
PictureClip Control
Multimedia presentations and applications really are great. But as all artists
know you can't just create a quality image in seconds. Having this control
available to house images is fine, but where do all those images come from?
Like with the Multimedia Control, this one is valuable to folks who have access
to images that already exist and which meet their own business needs.
ProgressBar Control
This is the one where I am really delinquent. I owe it to my users to apply this
control much more often than I do. I recommend that you use it whenever
possible. The techniques of changing the cursor to an hourglass is good, but a
progress bar is much better!
RichTextBox Control
This is very much a specialty control. For 99% of my user inputs, a simple text
input is just fine. I've gotten a lot of email from users who are using this
control so I know that the lure of better looking text must be hard to resist.
However, I resist it and don't really have any reason to recommend this one to
you unless you are writing some kind of word processor or if you really need to
display formatted text.
Slider Control
Yawn. Well, maybe not. There are times when adjusting something to get a value
is needed. But I could do that with the intrinsic scrollbars already. This
control is easier to use but I wish Microsoft had spent their money getting a
totally new feature rather than a better old one.
StatusBar Control
This one is an excellent way to give your user messages about the status of the
application or about the status of a user request. I don't know exactly why I
don't use it more, but I'm certain that my bad attitude will change. I
recommend you learn how to use this one and that you apply it to virtually
every program you write.
SysInfo Control
Based on questions I get from users this one should be a big winner. There are
all kinds of reasons why a programmer needs to know about the PC on which his
.EXE is running. This control has made a good start in providing that kind of
data to an application. I'd rather have seen it built in to VB as functions but
until then you can use this control to get data that otherwise would require
the use of the Windows API.
Tabbed Dialog Control
TabStrip Control
Toolbar Control
The Common Dialog box is easily the most useful ActiveX control, and the
Toolbar control takes second place. The control is reasonably easy to use and
I've never had any trouble with it - it works as advertised! I highly recommend
you learn to use this one.
TreeView Control
Except for the lack of a built-in ability to save its content, this control has
a lot of application potential. I've used it or one of its predecessors in
every version of VB since VB3. Learn to use it right and it can provide a very
strong user interface for the display of ordered data. If you can't figure out
how to save a tree structure, email me and I'll let you in on the code I came
up with.
UpDown Control
Pretty simple, but actually pretty useful. It should have been intrinsic too,
but it isn't. You won't have to spend much time on it to become an expert so
just learn it and then put it on the shelf until you need it. You may not need
it often but when you need what it does, you'll be pleased that it is
available.
WinSock Control
I don't use it. However, lots of my visitor do ask questions about it and it
seems to be a pretty popular control. As soon as I bite the bullet and get more
into Internet programming I suspect this one will move up the list of
favourites.
Summary
As I said, I tend to use a few controls often and a lot of controls very
seldom. If I was an expert in the controls I use infrequently, would I tend to
use them more often? It's the old problem of not knowing what you don't know. I
plan to work on stretching my control selection to give all of my less
favorite controls a better chance. In a year, we'll see if my list of
favorites has changed!