GUI VB.Net Tutorial

Option Strict On
Imports System.Drawing
Imports System.Windows.Forms
Public Class Form1 : Inherits Form
   ' Instantiate buttons
   Public WithEvents btnOK As New Button()
   Public WithEvents btnCancel As New Button()
   Public WithEvents btnQuit As New Button()
   
   ' Application entry point
   Public Shared Sub Main()
      Dim frm As New Form1()
      frm.ShowDialog()
   End Sub
   
   ' Class constructor
   Public Sub New()
      MyBase.New()
      ' Define button sizes and locations
      Me.btnOK.Location = New Point(100, 50)
      Me.btnOK.Size = New Size(100, 50)
      Me.btnOK.Text = "OK"
      Me.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK
      Me.btnCancel.Location = New Point(100, 125)
      Me.btnCancel.Size = New Size(100, 50)
      Me.btnCancel.Text = "Cancel"
      Me.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel
      
      Me.btnQuit.Location = New Point(100, 200)
      Me.btnQuit.Size = New Size(100, 50)
      Me.btnQuit.Text = "Exit"
      Me.btnQuit.DialogResult = System.Windows.Forms.DialogResult.Abort
      ' Define form controls and caption
      Me.Controls.Add(btnOK)
      Me.Controls.Add(btnCancel)
      Me.Controls.Add(btnQuit)
      Me.Text = "Button Click Events"
   End Sub
   
   ' Event handler for all three buttons
   Private Sub ButtonClicked(ByVal sender As System.Object, _
                             ByVal e As System.EventArgs) _
           Handles btnOK.Click, btnCancel.Click, btnQuit.Click
      If TypeOf sender Is Button Then
         Dim btn As Button = DirectCast(sender, Button)
         If btn.Name = "btnOK" Then
            Console.WriteLine("btnOK")
         ElseIf btn.Name = "btnCancel" Then
            Console.WriteLine("Cancel")
            Exit Sub
         Else 
            Me.Close()
         End If
      Else
         Throw New ArgumentException( _
               "The event was raised by an invalid object.")
      End If
   End Sub
End Class