In Windows, users interact with your program using controls: scroll bars, buttons, text boxes, menus, and so on—all the user interface elements Windows users are accustomed to. In VB .NET, you use the toolbox, introduced in Chapter 1, to add controls to a form.
To make this more concrete, add a button and a text box to the new Windows application we just created, as you see in Figure 4.3. Visual Basic gives these controls new names automatically—Button1 and TextBox1.
In this example, we'll have the application display text in the text box when the user clicks the button, so change the Text property of the button to "Click Me", as you see in Figure 4.3, using the Properties window. Then, delete the text in the text box, so it appears empty. This creates the user interface of our application—and VB6 programmers will already note a difference from control handling in VB6, where you set the button's Caption property, not the Text property.
In fact, the Caption property no longer exists; it's been replaced by the Text property. There are other changes in controls from VB6 as well—and plenty of them, as we'll see in the upcoming chapters. (Also see "What's New in VB .NET" in Chapter 1.) I'll take a look at a number of general points here to start us off.
There are no more control arrays. In VB6 and before, you could assemble controls into arrays, and handle events from all those controls in one place. But in an effort to standardize the way event-handling procedures work, VB .NET has removed support for control arrays (however, see "Imitating Control Arrays" in Chapter 6).
Also, in Visual Basic 6.0, coordinates for forms and controls were expressed in twips (1/1440ths of an inch); in Visual Basic .NET, coordinates are expressed in pixels—and only pixels, you can't change to other scales.
Default properties for controls are no longer supported for objects, which includes controls, in VB .NET (unless those properties take arguments). For example, in VB6, you could write:
Text1 = "Hello from Visual Basic"
This would assign the text "Hello from Visual Basic" to the Text property of the text box Text1, because Text was this control's default property. In VB .NET, however, the default name for this control would be TextBox1, and if you want to assign a value to its Text property, you must do so explicitly:
TextBox1.Text = "Hello from Visual Basic"
There are also changes to help internationalize Visual Basic; for example, you'll now find that controls have an ImeMode property, which stands for Input Method Editor, allowing controls to accept input in various international modes, such as Katakana.
The default names for controls have changed—for example, in VB6, the default name for a text box was Text1, in VB .NET, it's TextBox1; List1 has become ListBox1, Command1 has become Button1, Option1 has become RadioButton1, and so on.
You'll also find changes in the names of many events (DblClick is now DoubleClick, for example), properties (selText is now SelectedText, for example), and in the arguments passed to event handlers. You also can now anchor and dock controls (see "Anchoring and Docking Controls" in the Immediate Solutions section in this chapter for more details). We'll see other changes on a control-by-control basis, but these are some to keep in mind.