Creating Your First VB .NET Application

You have an open project with one form in it. So far, you haven't done anything to it, so you now need to create the obligatory Hello World application. I remember when Microsoft was running around showing the world how you could create a Hello World application in VB by typing just one line of code. Well, it's still that easy, but things certainly look different now.

Make sure that the form designer is the current tab in the work area, and open the Toolbox. Click and drag a button onto the form. Place it wherever you want. So far, this is just like VB6. Now, double-click on the button.

Double-clicking on the button causes the code window to open, just as it did in VB. However, in VB .NET, the code is added as a tab in the work area. The new tab is labeled Form1.vb, and has an asterisk after it, indicating it has not been saved. You have a lot of code in this window, and it's code that you haven't seen before. Some of the code is hidden from you, thanks to the fact that the VS .NET code editor lets you have code regions that allow you to collapse or expand blocks of code. If you expand the Windows Form Designer generated code section, you see a fair amount of code. In fact, before typing any code at all, you have the code shown in Figure 2.10. Notice that I have turned on line numbers just for easier referencing. If you want to turn on line numbers as well, go to Tools, Options. Expand the Text Editor node and choose Basic. Check the Line Numbers check box.

Figure 2.10. The code window shows a significant amount of code before you even start typing.


The first line of code shows that the form, Form1, is actually just a class. This is one of the biggest changes to VB .NET: Forms are truly classes. Why? Because forms are really just classes, and they have been forever. You might not have ever thought of it that way, but a form is just another class. When a form is displayed, you have just instantiated a class.

The next line is an Inherits statement. Any Windows form you create just inherits from the base Form class. You are calling a class in one of the .NET System namespaces; in this case, you are calling the Form class in the System.Windows.Forms namespace. It is this class that gives you the base functionality of forms, such as the methods and events you will access in your code. The Inherits statement is your first indication of true inheritance in VB .NET. You can inherit from this base class and then extend it if you want to do so.

The code located inside the normally collapsed Windows Form Designer generated code region is shown in Listing 2.1.

Listing 2.1. Code Generated for You by the Windows Form Designer
#Region " Windows Form Designer generated code "

    Public Sub New()
        MyBase.New()

        'This call is required by the Windows Form Designer.
        InitializeComponent()

        'Add any initialization after the InitializeComponent() call

    End Sub

    'Form overrides dispose to clean up the component list.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub
   Friend WithEvents Button1 As System.Windows.Forms.Button

    'Required by the Windows Form Designer
    Private components As System.ComponentModel.Container

    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer.
    'Do not modify it using the code editor.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub
    InitializeComponent()
      Me.Button1 = New System.Windows.Forms.Button()
      Me.SuspendLayout()
      '
      'Button1
      '
      Me.Button1.Location = New System.Drawing.Point(64, 56)
      Me.Button1.Name = "Button1"
      Me.Button1.TabIndex = 0
      Me.Button1.Text = "Button1"
      '
      'Form1
      '
      Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
      Me.ClientSize = New System.Drawing.Size(292, 273)
      Me.Controls.AddRange(New System.Windows.Forms.Control() { Me.Button1} )
      Me.Name = "Form1"
      Me.Text = "Form1"
      Me.ResumeLayout(False)

   End Sub

#End Region

The next piece inside the class is a public Sub named New, found inside the automatically generated region. Notice that it calls a Sub named InitializeComponent. The InitializeComponent routine is created for you by VS .NET. The New routine is similar to the Form_Load event procedure you got used to in VB6. Notice that you need to add any of your own code after the call to InitializeComponent.

After the New sub is a Dispose sub, much like the Form_Unload found in VB6. This is the area for the cleanup of anything you might have open. Don't worry about the Overloads and Overrides keywords for now; they will be covered when you learn more about inheritance.

As you can see, the InitializeComponent routine is in this block, and it is what sets up the controls on the form. Notice that the button has properties set, such as the location and size, and then is added to a controls collection.

Finally, below this region of code is the routine to handle the click event on the button. This looks different from what you have seen before as well. In fact, if you started a new Standard EXE project in VB6, added a button to the form, and then double-clicked the button, your entire project would show just this code:

Private Sub Command1_Click()

End Sub

However, in VB .NET, you will see a lot more code. In fact, the Click event is not even handled until line 57, at least in this example. The declaration of the event procedure is quite different as well. In VB .NET, the event procedure looks like this:

Private Sub Button1_Click(ByVal sender As System.Object, _
   ByVal e As System.EventArgs) Handles Button1.Click
End Sub

Again, don't worry about all the changes for now. Instead, type in the following line of code:

msgbox "Hello, World"

When you move off this line, you will notice that VB .NET automatically adds parentheses around your argument, leaving you with this:

MsgBox("Hello, World")

This is one of the first fundamental language changes: Subs and Functions require parentheses around the argument. The MsgBox command is a function, but in VB6, you did not need parentheses around a parameter if you were ignoring the return value. In VB .NET, you always need the parentheses, so get used to adding them or at least get used to seeing VB .NET add them for you.

Now, it is time to run this rather exciting demonstration and see whether it works. You can click the Start button on the toolbar (it should look familiar) or you can go to the Debug menu and choose Start.

Form1 should load. Click on the button, and you should get a message box to pop up, with the text Hello, World. In Figure 2.11, you will notice that the title of the message box is the same as the project name, just as it was in VB6. Close the application and return to the IDE.

Figure 2.11. The Hello World application running.


Notice that a new window is showing. At the bottom of the screen, an Output window is now open. Figure 2.12 shows this window. The Output window has a drop-down list box that can show different information. Currently, it shows you all the debug statements. You did not put any debug.print statements into your code, but certain actions by the compiler automatically put comments into the Debug window.

Figure 2.12. The new Debug window.


Before moving on, you might want to change the title of the message box. Return to the one line of code you've written so far and modify it to look like this:

msgbox("Hello, World", , "My first VB .NET App")

Now that you have added a title to the message box, run the project again, and the title of your message box will be My first VB .NET App. If you think it doesn't get any better than this, hang on.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
13.59.6.153