In this article, you will learn the basics of the Windows Forms platform and how
to write Windows applications using Windows forms and controls. The space
allocated to this article prevents an exploration of every control in the
System.Windows.Forms namespace, but the following key topics are discussed and
should provide the reader an ample grounding with which to tackle any orphaned
controls:
- Windows Forms and the advantages of using forms
- Developing Windows applications using Windows Forms
- The basics of the System.Windows.Forms namespace and its classes such as Form, Control, and other control classes
- Working with menus, toolbars, ToolTips, and status bars
- Working with dialog boxes
- Working with common dialog classes
Windows Forms
Windows Forms is a framework located in the System.Windows.Forms.dll assembly
for building Windows applications in .NET based on a graphical user interface
(GUI). Any language that supports the common language runtime (CLR) can use
Windows Forms.
Why Windows Forms?
If you have programmed in Visual Basic (VB), you are probably familiar with
forms. In VB, all windows are forms. Controls are placed on forms to develop GUI
applications. Visual C++ developers will more likely be familiar with windows
and dialogs rather than forms (CWnd and CDialog in Microsoft Foundation Classes
[MFC]).
The Microsoft .NET Framework is designed to remedy this "forms versus windows"
situation. All windows are forms, including dialog boxes. From all of this
synergy, Microsoft coined the term Windows form. Now developers using any
.NET-supported language have access to the same windowing classes, whether they
work with C#, VB, C++, or any other .NET-compliant language. This language
independence has been extended to support many more languages, including COBOL.
In addition to the preceding, the main benefits of Windows Forms are its ease of
use, the standardization of the control hierarchy, and that it allows for rapid
application development (RAD). Changing the colors and fonts of controls using
MFC or Win32 can be a real headache. The .NET Framework has taken care of most
such problems and inconveniences.
In addition, Windows Forms applications provide the following:
- Simple and flexible property support, modeled after
- Common control support, including support for font and color dialogs
- Support for Web Services
- Data-aware controls using ADO.NET
- ActiveX support
- GDI+ (Graphical Device Interface +), a better and richer graphics library, which supports alpha blending, texture brushes, advanced transformations, and rich text
- Metadata support
Writing Your First Windows Application
Our first Windows application is a simple one that creates a window. To create a
Windows-based application, you derive a class from System.Windows.Forms.Form and
call the default constructor, as illustrated in example given below. The Form class acts
as a container for other controls.
Example: First Console Windows Application
Imports System.Windows.Forms
' Derive
your class from the System.Windows.Forms.Form class\
Module Module1
Public Class WinForm
Inherits Form
End Class
Sub
Main()
' Create a Form object
Dim myFrm As New WinForm()
' Set the window title
myFrm.Text = "My First
Windows Application"
' Pass form object
Application.Run(myFrm)
End Sub
End Module
The window's title is set by the form's Text property. The static method
Application.Run creates a standard message loop on the current thread. The
above example explain you how, creates an empty form with the title "My
First Windows Application" in the caption bar.
Output of First Windows Application

In the example given below we adds a button and a text box to the form and creates an
event handler for the button. When a user clicks the button, an event is
triggered that writes a string to the text box. A reference to the System.Windows.Forms.dll and System.Drawing.dll namespaces must be added before
compiling the project.
we create a WinForm class derived from the Form
class. After that, we create the Button and TextBox controls. We then set the
button and text box properties such as Name, Text, BackgroundColor,
ForegroundColor, and Size. The call to the Form.Controls.AddRange method takes
an array of controls as a parameter and adds them to the form as indicated in
the following code:
myFrm.Controls.AddRange(New
System.Windows.Forms.Control()
{myFrm.textBox1, myFrm.button1})
An event handler is also created for the Button control. The following code
shows how to write a button click event handler for button1. The button1_Click
method executes when the button is clicked.
AddHandler
myFrm.button1.Click, New
System.EventHandler(AddressOf
myFrm.button1_Click)
Example of Creating a Windows Application with Controls
Imports System.Windows.Forms
Imports
System.Drawing
Module Module1
Class WinForm
Inherits Form
Dim button1 As Button
Dim textBox1 As TextBox
' The button click event handler
Sub button1_Click(ByVal
sender As Object,
ByVal
e As
System.EventArgs)
textBox1.Text = "Button is
clicked"
End Sub
Shared Sub
Main()
Dim myFrm As New WinForm()
' Create Button and TextBox objects
myFrm.button1 = New
System.Windows.Forms.Button()
myFrm.textBox1 = New
System.Windows.Forms.TextBox()
' Setting the Button control Properties
myFrm.button1.BackColor = System.Drawing.Color.Blue
myFrm.button1.ForeColor = System.Drawing.Color.Yellow
myFrm.button1.Location =
New System.Drawing.Point(24,
40)
myFrm.button1.Name =
"button1"
myFrm.button1.Size = New
System.Drawing.Size(112,
32)
myFrm.button1.TabIndex = 0
myFrm.button1.Text = "Click
Me"
' The button click event handler
AddHandler myFrm.button1.Click, New
System.EventHandler(AddressOf
myFrm.button1_Click)
' Setting the TextBox control Properties
myFrm.textBox1.Location =
New System.Drawing.Point(168,
48)
myFrm.textBox1.Name =
"textBox1"
myFrm.textBox1.Size = New
System.Drawing.Size(104,
20)
myFrm.textBox1.TabIndex = 1
myFrm.textBox1.Text =
"textBox1"
' Setting the form Properties
myFrm.AutoScaleBaseSize =
New System.Drawing.Size(5,
13)
myFrm.ClientSize = New
System.Drawing.Size(292,
273)
myFrm.Controls.AddRange(New
System.Windows.Forms.Control()
{myFrm.textBox1, myFrm.button1})
myFrm.Text = "My First
Windows Application"
myFrm.BackColor = Color.Red
myFrm.ForeColor = Color.Yellow
myFrm.ResumeLayout(False)
Application.Run(myFrm)
End Sub
End Class
End Module
The result of compiling and running the above
code is appears in Figure
given below, after the button has been clicked.
Figure of Creating a Windows Application with Controls

Conclusion
Hope this article would have helped you in understanding
Windows Programming in VB.NET