VB Programming

Radio Buttons & Check Boxes

Radio Buttons
These controls are similar in that they let the user select from a set of options. They are different in that Radio Buttons only allow one of the set to be selected at a time, while Check boxes, if used in a set, can have several in the set turned on at the same time. Selecting one Radio Button means all other buttons in the set are deselected. So Radio Buttons are used to select among mutually exclusive alternatives and are always used in sets. They appear as a circle and when selected have a dot in the circle.

On the other hand, check boxes may be used singly or in a set, and when in a set several can be selected at the same time. Check boxes are a square and when selected show a check in box. You should think of these as a push button control for turning specific features on or off. The clickable area of the buttons is larger than at first appears since you can also click on the text accompanying the buttons in order to activate the button.

The event generated when the user interacts with these controls is not a click event as it is when the user interacts with a button, but a CheckChanged event. This is because when the user clicks on these controls, they intend to change the current status of the control. A problem occurs when a beginning programmer, or one new to VB, assumes that a click means the user is selecting (turning on) that option. It is actually just as likely that the user is deselecting or turning off that option.

Think about the operation of a Check Box compared to a Radio Buttons. Check boxes have to be deselected by the program user whereas Radio Buttons are automatically deselected for the user when they click on a different radio button.

So, does clicking turn the check on or does it turn the check off? Truthfully it can do either one. If the check is currently on then clicking it will turn the check off and vica versa. This is precisely the reason why the procedure is named CheckChanged. It is changing the check from its current state to the opposite state. Radio buttons and Check boxes are controls which alter the state of something in a program. Buttons are controls which activate an event procedure. If a programmer forgets that the Radio button and Check box event is CheckChanged, their coding will generate peculiar and unreliable results. Here is a program you can download which demonstrates this behaviour.

The most important effect of this, is that when we code using these controls, we must not assume that the user event is turning the state of the control on, rather it is changing the state of the control. It might be turning the control off. The easiest way to cope with this ambiguity when coding is to always use a Forced Choice selection structure. Explicitly check the state of the control by testing the Checked property of the control. Then provide one set of commands to be executed if the control is being selected, and another set of cammands to be executed if the control is being deselected. This way we can code the event to respond appropriately whether it is turned on or whether it is turned off. Typical code would look like this:

If EmailOptIn.Checked then
    optIn = True
    optIn = False
End If

This is better code - more reliable - than using just a conditional and incorrectly assuming that the user is always turning the control on. Making assumptions about the state of controls in programming always causes problems sooner or later.

Organizational Behaviour

Solving People Problems

Actually this article is not about solving people’s problems, it is about how to get people to do what you want them to do. The simplest context is that of working in a business, but the process is also applicable to personal situations. The central issue is how do you get someone to do what you want done? There is a rational process for doing this. It does require their cooperation, but assuming you have a common objective this is posible and does not have to invole blackmail or any other illeagal or immoral activity.

The Basics

Given a situation in which someone did not do what you wanted them to do, how do you get them to change their behaviour so they will do what you want rather than repeat the undesireable behaviour. If someone does not do as you want them to do, there are only two possible reasons for their behaviour.

First: they cannot do what you want them to do because they lack the ability to do it.
The first is an ability problem. They literally can not do what you want them to do. A quick example should help qualify this situation. If you are confronted by a robber who holds a gun to your head and demands that you give them a $100 bill. In this situation most of us want to do as the robber demands. We want to live! We are motivated! If we do not have the required bill giving the robber one hundred dollars will not do—he wants a one hundred dollar bill. Assuming you do not carry one hundred dollar bills on your person, this is an ability problem, No matter how much we want to do it we cannot because we do not have the demanded banknote.

Second: they want to do something else because they lack motivation to do what you want done.
The second situation is a direct clash of our desires and their desires. Here we must point out that you can only negotiate this situation if you do indeed have a common objective. We need to jointly examine the consequences of performing or not performing the desired behaviour. One person’s wants will prevail in this situation. In other words we will have a consequence off to determine whose wants will become uppermost. We want to motivate the other person to do what we want done.


So our first action in our hypothetical situation mentioned above is to find out why the other person did what they did. We need information from them to understand which of the two possble reasons explain their behaviour. They we can determine what course of action we need to follow to change their behaviour.

However, two common obstacles commonly arise at this point. Let me illustrate with a couple short examples. Let us say an employee was late for work one morning and their supervisor catches up with them later that morning. What does the supervisor say?

"That was a bonehead move you pulled this morning!"

The employee now has to interpret this comment and respond. Several thoughts and responses are possible:
  • What did I do? There is uncertainty because the supervisor did not spell out the topic of discussion. Lack of specificity is hampering the communication. Some supervisors actually do this deliberately with the mistaken idea that a fishing expedition is good policy because it might turn up something they did not previously know about. In the long term baiting employees in this manner only causes them to clam up and say the minimum possible. The less that is said the harder time we have determining whether their problem is an ability problem or a motivation problem.
  • What does he know about? This is one step more paranoid than the above and also reduces the quantity and quality of the communication. Again we have determining whether their problem is an ability problem or a motivation problem.
  • Bonehead move? who does she think she is?’ This is the other main problem because now the employee will become defensive. How much communication takes place when we are defensive?
In this situation the supervisor needs to communicate specifically and non-threateningly. Something like this:

"Bill you were fifteen minutes late for work this morning, Help me understand what happened."

This is specific. Bill knows exactly what his supervisor is asking of him. It also invites Bill to share information rather than judging him or threatening him. The very fact that his supervisor brings it up also tells him that it matters and that he should not be late. Whatever Bill's reason for being late, the supervisor has invited a response and has not threatened him. Naturally, to be effective this message must be consistent in words, as well as in tone of voice and in non-verbal behaviour.

Continued here

Desktop Publishing


In 1985 the introduction of an inexpensive laser printer (it sold for less than $5,000) and a software program from Aldus corporation called Pagemaker (cost about $1,000) triggered the creation of what today we call Desktop Publishing. Prior to the introduction of those two items, it was common to spend over $100,000 for computer hardware, software, image setters, and to hire a 'typesetter' or two and set up in business. By 1986 there were no more typesetters. Most of them had gone into business for themselves by buying a Macintosh computer, (Pagemaker only ran on Macintosh computers at the time) a laser printer and Pagemaker. Desktop Publishing allowed us to easily combine text and graphics on the same page, and anyone could do it!

The only advantage that typesetters had over a novice who bought the same equipment, was they knew what they were doing and how to do it quickly. The rest of us were on our own and what was produced by all those novices was thrilling, and at the same time rather chaotic. It took a few years for the novices to learn the rules that the typesetters knew well. Ironically the typesetters were in the best position to educate the rest of us, but by and large, they did not take up the gauntlet. The traditional way to learn the trade was to apprentice with an established typesetter and learn over time.

This is not an uncommon situation. When paradigms change it is the established people who have the first opportunity to take advantage of the changes. Often they are the last to see the inevitability of what is happening. So most of them resist such change, and it usually takes an outsider to see the real potential and act upon it. However this generalization is a story for another time.

One of the first people to provide instructions on how to get professional looking results with less time and effort was Robin Williams - the author and teacher not the commedian.

At this time a Maintosh computer could be purchased for about $2,000 to $3,000; the Laserwriter debuted at under $5,000, a real steal compared to other high quality printers at the time which could run as high as $100,000; and Pagemaker from Aldus Corporation weighed in at just under $1,000. For under $10,000 you were set up in the typesetting/publishing business. Just a year before a package of hardware and software to do the same thing had cost over $100,000. What an opportunity!

Of course, you could only actually do the first six steps of a traditional twenty-four step publishing process, but it was the most revolutionary advance since the introduction of the printing press by Johannes Gutenberg and others in the 1400's.