Audience
Audience
NET
VB.Net is a simple, modern, object-oriented computer programming language
developed by Microsoft to combine the power of .NET Framework and the common
language runtime with the productivity benefits that are the hallmark of Visual Basic.
This tutorial will teach you basic VB.Net programming and will also take you through
various advanced concepts related to VB.Net programming language.
                                    Audience
This tutorial has been prepared for the beginners to help them understand basic
VB.Net programming. After completing this tutorial, you will find yourself at a moderate
level of expertise in VB.Net programming from where you can take yourself to next
levels.
                                Prerequisites
VB.Net programming is very much based on BASIC and Visual Basic programming
languages, so if you have basic understanding on these programming languages, then
it will be a fun for you to learn VB.Net programming language.
                              VB.Net - Overview
Visual Basic .NET (VB.NET) is an object-oriented computer programming language
implemented on the .NET Framework. Although it is an evolution of classic Visual
Basic language, it is not backwards-compatible with VB6, and any code written in the
old version does not compile under VB.NET.
Like all other .NET languages, VB.NET has complete support for object-oriented
concepts. Everything in VB.NET is an object, including all of the primitive types (Short,
Integer, Long, String, Boolean, etc.) and user-defined types, events, and even
assemblies. All objects inherits from the base class Object.
VB.NET is implemented by Microsoft's .NET framework. Therefore, it has full access to
all the libraries in the .Net Framework. It's also possible to run VB.NET programs on
Mono, the open-source alternative to .NET, not only under Windows, but even Linux or
Mac OSX.
The following reasons make VB.Net a widely used professional language −
      Modern, general purpose.
      Object oriented.
      Component oriented.
      Easy to learn.
      Structured language.
                                            1
      It produces efficient programs.
      It can be compiled on a variety of computer platforms.
      Part of .Net Framework.
                                             2
The .Net framework consists of an enormous library of codes used by the client
languages like VB.Net. These languages use object-oriented methodology.
Following are some of the components of the .Net framework −
      Common Language Runtime (CLR)
      The .Net Framework Class Library
      Common Language Specification
      Common Type System
      Metadata and Assemblies
      Windows Forms
      ASP.Net and ASP.Net AJAX
      ADO.Net
      Windows Workflow Foundation (WF)
      Windows Presentation Foundation
      Windows Communication Foundation (WCF)
      LINQ
For the jobs each of these components perform, please see ASP.Net - Introduction,
and for details of each component, please consult Microsoft's documentation.
                                          3
several operating systems, including various flavors of Linux and Mac OS. The most
recent version is VB 2012.
The stated purpose of Mono is not only to be able to run Microsoft .NET applications
cross-platform, but also to bring better development tools to Linux developers. Mono
can be run on many operating systems including Android, BSD, iOS, Linux, OS X,
Windows, Solaris and UNIX.
Imports System
Module Module1
   'This program will display Hello World
   Sub Main()
      Console.WriteLine("Hello World")
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
Hello, World!
Let us look various parts of the above program −
      The first line of the program Imports System is used to include the System
       namespace in the program.
                                           4
      The next line has a Module declaration, the module Module1. VB.Net is
       completely object oriented, so every program must contain a module of a class
       that contains the data and procedures that your program uses.
      Classes or Modules generally would contain more than one procedure.
       Procedures contain the executable code, or in other words, they define the
       behavior of the class. A procedure could be any of the following −
           o   Function
           o   Sub
           o   Operator
           o   Get
           o   Set
           o   AddHandler
           o   RemoveHandler
           o   RaiseEvent
      The next line( 'This program) will be ignored by the compiler and it has been put
       to add additional comments in the program.
      The next line defines the Main procedure, which is the entry point for all VB.Net
       programs. The Main procedure states what the module or class will do when
       executed.
      The Main procedure specifies its behavior with the statement
       Console.WriteLine("Hello World") WriteLine is a method of the Console class
       defined in the System namespace. This statement causes the message "Hello,
       World!" to be displayed on the screen.
      The last line Console.ReadKey() is for the VS.NET Users. This will prevent the
       screen from running and closing quickly when the program is launched from
       Visual Studio .NET.
                                            5
      Write code in the Code Editor.
      Click the Run button or the F5 key to run the project. A Command Prompt
       window appears that contains the line Hello World.
You can compile a VB.Net program by using the command line instead of the Visual
Studio IDE −
      Open a text editor and add the above mentioned code.
      Save the file as helloworld.vb
      Open the command prompt tool and go to the directory where you saved the file.
      Type vbc helloworld.vb and press enter to compile your code.
      If there are no errors in your code the command prompt will take you to the next
        line and would generate helloworld.exe executable file.
      Next, type helloworld to execute your program.
      You will be able to see "Hello World" printed on the screen.
                                               6
Let us look at an implementation of a Rectangle class and discuss VB.Net basic syntax on the
basis of our observations in it −
Imports System
Public Class Rectangle
   Private length As Double
   Private width As Double
   'Public methods
   Public Sub AcceptDetails()
      length = 4.5
      width = 3.5
   End Sub
End Sub
When the above code is compiled and executed, it produces the following result −
Length: 4.5
Width: 3.5
Area: 15.75
In previous chapter, we created a Visual Basic module that held the code. Sub Main indicates
the entry point of VB.Net program. Here, we are using Class that contains both code and data.
You use classes to create objects. For example, in the code, r is a Rectangle object.
An object is an instance of a class −
Dim r As New Rectangle()
A class may have members that can be accessible from outside class, if so specified. Data
members are called fields and procedure members are called methods.
Shared methods or static methods can be invoked without creating an object of the class.
Instance methods are invoked through an object of the class −
                                              7
Shared Sub Main()
   Dim r As New Rectangle()
   r.Acceptdetails()
   r.Display()
   Console.ReadLine()
End Sub
Identifiers
An identifier is a name used to identify a class, variable, function, or any other user-defined
item. The basic rules for naming classes in VB.Net are as follows −
       A name must begin with a letter that could be followed by a sequence of letters, digits (0
        - 9) or underscore. The first character in an identifier cannot be a digit.
       It must not contain any embedded space or symbol like ? - +! @ # % ^ & * ( ) [ ] { } . ; :
         " ' / and \. However, an underscore ( _ ) can be used.
       It should not be a reserved keyword.
VB.Net Keywords
The following table lists the VB.Net reserved keywords −
AddHandler       AddressOf        Alias             And         AndAlso            As                Boolean
                                                8
 MyClass         Namespace        Narrowing         New          Next              Not          Nothing
 Previous Page
Next Page  
Data types refer to an extensive system used for declaring variables or functions of
different types. The type of a variable determines how much space it occupies in
storage and how the bit pattern stored is interpreted.
                                                9
Byte      1 byte                            0 through 255 (unsigned)
Double    8 bytes
                                            -1.79769313486231570E+308                     through
                                            -4.94065645841246544E-324,            for    negative
                                            values
                                            4.94065645841246544E-324                      through
                                            1.79769313486231570E+308,             for     positive
                                            values
Single    4 bytes
                                            -3.4028235E+38       through    -1.401298E-45         for
                                       10
                                                  negative values;
                                                  1.401298E-45 through          3.4028235E+38       for
                                                  positive values
User-          Depends on implementing platform   Each member of the structure has a range determined
Defined                                           by its data type and independent of the ranges of the
                                                  other members
Example
The following example demonstrates use of some of the types −
                                                                                Live Demo
Module DataTypes
   Sub Main()
      Dim b As Byte
      Dim n As Integer
      Dim si As Single
      Dim d As Double
      Dim da As Date
      Dim c As Char
      Dim s As String
      Dim bl As Boolean
         b = 1
         n = 1234567
         si = 0.12345678901234566
         d = 0.12345678901234566
         da = Today
         c = "U"c
         s = "Me"
                                          11
            bl = False
         End If
      If bl Then
         'the oath taking
         Console.Write(c & " and," & s & vbCrLf)
         Console.WriteLine("declaring on the day of: {0}", da)
         Console.WriteLine("We will learn VB.Net seriously")
         Console.WriteLine("Lets see what happens to the floating
point variables:")
         Console.WriteLine("The Single: {0}, The Double: {1}", si,
d)
      End If
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
U and, Me
declaring on the day of: 12/4/2012 12:00:00 PM
We will learn VB.Net seriously
Lets see what happens to the floating point variables:
The Single:0.1234568, The Double: 0.123456789012346
The Type Conversion Functions in VB.Net
VB.Net provides the following in-line type conversion functions −
1
          CBool(expression)
          Converts the expression to Boolean data type.
2
          CByte(expression)
          Converts the expression to Byte data type.
3
          CChar(expression)
          Converts the expression to Char data type.
4
          CDate(expression)
                                           12
     Converts the expression to Date data type
5
     CDbl(expression)
     Converts the expression to Double data type.
6
     CDec(expression)
     Converts the expression to Decimal data type.
7
     CInt(expression)
     Converts the expression to Integer data type.
8
     CLng(expression)
     Converts the expression to Long data type.
9
     CObj(expression)
     Converts the expression to Object type.
10
     CSByte(expression)
     Converts the expression to SByte data type.
11
     CShort(expression)
     Converts the expression to Short data type.
12
     CSng(expression)
     Converts the expression to Single data type.
13
     CStr(expression)
     Converts the expression to String data type.
14
     CUInt(expression)
     Converts the expression to UInt data type.
                                      13
 15
          CULng(expression)
          Converts the expression to ULng data type.
 16
          CUShort(expression)
          Converts the expression to UShort data type.
Example
The following example demonstrates some of these functions −
                                                                           Live Demo
Module DataTypes
   Sub Main()
      Dim n As Integer
      Dim da As Date
      Dim bl As Boolean = True
      n = 1234567
      da = Today
      Console.WriteLine(bl)
      Console.WriteLine(CSByte(bl))
      Console.WriteLine(CStr(bl))
      Console.WriteLine(CStr(da))
      Console.WriteLine(CChar(CChar(CStr(n))))
      Console.WriteLine(CChar(CStr(da)))
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
True
-1
True
12/4/2012
1
1
VB.Net - Variables
 Previous Page
Next Page  
                                          14
A variable is nothing but a name given to a storage area that our programs can
manipulate. Each variable in VB.Net has a specific type, which determines the size and
layout of the variable's memory; the range of values that can be stored within that
memory; and the set of operations that can be applied to the variable.
We have already discussed various data types. The basic value types provided in
VB.Net can be categorized as −
Type Example
Integral types SByte, Byte, Short, UShort, Integer, UInteger, Long, ULong and Char
VB.Net also allows defining other value types of variable like Enum and reference
types of variables like Class. We will discuss date types and Classes in subsequent
chapters.
                                               15
       Shared declares a shared variable, which is not associated with any specific
        instance of a class or structure, rather available to all the instances of the class
        or structure. Optional.
       Shadows indicate that the variable re-declares and hides an identically named
        element, or set of overloaded elements, in a base class. Optional.
       Static indicates that the variable will retain its value, even when the after
        termination of the procedure in which it is declared. Optional.
       ReadOnly means the variable can be read, but not written. Optional.
       WithEvents specifies that the variable is used to respond to events raised by
        the instance assigned to the variable. Optional.
       Variablelist provides the list of variables declared.
Each variable in the variable list has the following syntax and parts −
variablename[ ( [ boundslist ] ) ] [ As [ New ] datatype ] [ =
initializer ]
Where,
       variablename − is the name of the variable
       boundslist − optional. It provides list of bounds of each dimension of an array
        variable.
       New − optional. It creates a new instance of the class when the Dim statement
        runs.
       datatype − Required if Option Strict is On. It specifies the data type of the
        variable.
       initializer − Optional if New is not specified. Expression that is evaluated and
         assigned to the variable when it is created.
Some valid variable declarations along with their definition are shown here −
Dim    StudentID As Integer
Dim    StudentName As String
Dim    Salary As Double
Dim    count1, count2 As Integer
Dim    status As Boolean
Dim    exitButton As New System.Windows.Forms.Button
Dim    lastTime, nextTime As Date
                                              16
Dim pi As Double
pi = 3.14159
Example
Try the following example which makes use of various types of variables −
                                                                            Live Demo
Module variablesNdataypes
   Sub Main()
      Dim a As Short
      Dim b As Integer
      Dim c As Double
      a = 10
      b = 20
      c = a + b
      Console.WriteLine("a = {0}, b = {1}, c = {2}", a, b, c)
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
a = 10, b = 20, c = 30
Accepting Values from User
The Console class in the System namespace provides a function ReadLine for
accepting input from the user and store it into a variable. For example,
Dim message As String
message = Console.ReadLine
Module variablesNdataypes
   Sub Main()
      Dim message As String
      Console.Write("Enter message: ")
      message = Console.ReadLine
      Console.WriteLine()
      Console.WriteLine("Your Message: {0}", message)
      Console.ReadLine()
                                             17
   End Sub
End Module
When the above code is compiled and executed, it produces the following result
(assume the user inputs Hello World) −
Enter message: Hello World
Your Message: Hello World
Lvalues and Rvalues
There are two kinds of expressions −
      lvalue − An expression that is an lvalue may appear as either the left-hand or
        right-hand side of an assignment.
      rvalue − An expression that is an rvalue may appear on the right- but not left-
        hand side of an assignment.
Variables are lvalues and so may appear on the left-hand side of an assignment.
Numeric literals are rvalues and so may not be assigned and can not appear on the
left-hand side. Following is a valid statement −
Dim g As Integer = 20
But following is not a valid statement and would generate compile-time error −
20 = g
 Previous Page
Next Page  
The constants refer to fixed values that the program may not alter during its execution.
These fixed values are also called literals.
Constants can be of any of the basic data types like an integer constant, a floating
constant, a character constant, or a string literal. There are also enumeration constants
as well.
The constants are treated just like regular variables except that their values cannot be
modified after their definition.
An enumeration is a set of named integer constants.
Declaring Constants
In VB.Net, constants are declared using the Const statement. The Const statement is
used at module, class, structure, procedure, or block level for use in place of literal
values.
                                           18
The syntax for the Const statement is −
[ < attributelist > ] [ accessmodifier ] [ Shadows ]
Const constantlist
Where,
      attributelist − specifies the list of attributes applied to the constants; you can
       provide multiple attributes separated by commas. Optional.
      accessmodifier − specifies which code can access these constants. Optional.
       Values can be either of the: Public, Protected, Friend, Protected Friend, or
       Private.
      Shadows − this makes the constant hide a programming element of identical
       name in a base class. Optional.
      Constantlist − gives the list of names of constants declared. Required.
Where, each constant name has the following syntax and parts −
constantname [ As datatype ] = initializer
      constantname − specifies the name of the constant
      datatype − specifies the data type of the constant
      initializer − specifies the value assigned to the constant
For example,
'The following statements declare constants.'
Const maxval As Long = 4999
Public Const message As String = "HELLO"
Private Const piValue As Double = 3.1415
Example
The following example demonstrates declaration and use of a constant value −
                                                                               Live Demo
Module constantsNenum
   Sub Main()
      Const PI = 3.14149
      Dim radius, area As Single
      radius = 7
      area = PI * radius * radius
      Console.WriteLine("Area = " & Str(area))
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
Area = 153.933
                                            19
Print and Display Constants in VB.Net
VB.Net provides the following print and display constants −
1
         vbCrLf
         Carriage return/linefeed character combination.
2
         vbCr
         Carriage return character.
3
         vbLf
         Linefeed character.
4
         vbNewLine
         Newline character.
5
         vbNullChar
         Null character.
6
         vbNullString
         Not the same as a zero-length string (""); used for calling external procedures.
7
         vbObjectError
         Error number. User-defined error numbers should be greater than this value. For
         example: Err.Raise(Number) = vbObjectError + 1000
8
         vbTab
         Tab character.
9
         vbBack
                                           20
          Backspace character.
Declaring Enumerations
An enumerated type is declared using the Enum statement. The Enum statement
declares an enumeration and defines the values of its members. The Enum statement
can be used at the module, class, structure, procedure, or block level.
The syntax for the Enum statement is as follows −
[ < attributelist > ] [ accessmodifier ]                   [ Shadows ]
Enum enumerationname [ As datatype ]
   memberlist
End Enum
Where,
      attributelist − refers to the list of attributes applied to the variable. Optional.
      accessmodifier − specifies which code can access these enumerations.
       Optional. Values can be either of the: Public, Protected, Friend or Private.
      Shadows − this makes the enumeration hide a programming element of
       identical name in a base class. Optional.
      enumerationname − name of the enumeration. Required
      datatype − specifies the data type of the enumeration and all its members.
      memberlist − specifies the list of member constants being declared in this
       statement. Required.
Each member in the memberlist has the following syntax and parts:
[< attribute list >] member name [ = initializer ]
Where,
      name − specifies the name of the member. Required.
      initializer − value assigned to the enumeration member. Optional.
For example,
Enum Colors
   red = 1
   orange = 2
   yellow = 3
   green = 4
   azure = 5
   blue = 6
   violet = 7
End Enum
                                              21
Example
The following example        demonstrates        declaration   and   use   of   the   Enum
variable Colors −
                                                                                 Live Demo
Module constantsNenum
   Enum Colors
      red = 1
      orange = 2
      yellow = 3
      green = 4
      azure = 5
      blue = 6
      violet = 7
   End Enum
   Sub Main()
      Console.WriteLine("The        Color        Red is : " & Colors.red)
      Console.WriteLine("The        Color        Yellow is : " & Colors.yellow)
      Console.WriteLine("The        Color        Blue is : " & Colors.blue)
      Console.WriteLine("The        Color        Green is : " & Colors.green)
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
The   Color   Red is: 1
The   Color   Yellow is: 3
The   Color   Blue is: 6
The   Color   Green is: 4
VB.Net - Modifiers
 Previous Page
Next Page  
The modifiers are keywords added with any programming element to give some
especial emphasis on how the programming element will behave or will be accessed in
the program.
For example, the access modifiers: Public, Private, Protected, Friend, Protected
Friend, etc., indicate the access level of a programming element like a variable,
constant, enumeration or a class.
                                            22
List of Available Modifiers in VB.Net
The following table provides the complete list of VB.Net modifiers −
 Sr.N            Modifier                                       Description
  o
1       Ansi                   Specifies that Visual Basic should marshal all strings to American National
                               Standards Institute (ANSI) values regardless of the name of the external
                               procedure being declared.
2       Assembly               Specifies that an attribute at the beginning of a source file applies to the
                               entire assembly.
                                      Declare Statement
                                      Function Statement
                                      Sub Statement
6       ByVal                  Specifies that an argument is passed in such a way that the called
                               procedure or property cannot change the value of a variable underlying the
                               argument in the calling code. It is used under the contexts of −
                                      Declare Statement
                                      Function Statement
                                      Operator Statement
                                      Property Statement
                                      Sub Statement
7       Default                Identifies a property as the default property of its class, structure, or
                               interface.
8       Friend
                               Specifies that one or more declared programming elements are
                               accessible from within the assembly that contains their declaration,
                               not only by the component that declares them.
                                            23
                      Friend access is often the preferred level for an application's
                      programming elements, and Friend is the default access level of an
                      interface, a module, a class, or a structure.
9    In               It is used in generic interfaces and delegates.
10   Iterator         Specifies that a function or Get accessor is an iterator. An iterator performs
                      a custom iteration over a collection.
11   Key              The Key keyword enables you to specify behavior for properties of
                      anonymous types.
12   Module           Specifies that an attribute at the beginning of a source file applies to the
                      current assembly module. It is not same as the Module statement.
13   MustInherit      Specifies that a class can be used only as a base class and that you
                      cannot create an object directly from it.
14   MustOverride     Specifies that a property or procedure is not implemented in this class and
                      must be overridden in a derived class before it can be used.
15   Narrowing        Indicates that a conversion operator (CType) converts a class or structure
                      to a type that might not be able to hold some of the possible values of the
                      original class or structure.
16   NotInheritable   Specifies that a class cannot be used as a base class.
17   NotOverridable   Specifies that a property or procedure cannot be overridden in a derived
                      class.
18   Optional         Specifies that a procedure argument can be omitted when the procedure is
                      called.
19   Out              For generic type parameters, the Out keyword specifies that the type is
                      covariant.
20   Overloads        Specifies that a property or procedure redeclares one or more existing
                      properties or procedures with the same name.
21   Overridable      Specifies that a property or procedure can be overridden by an identically
                      named property or procedure in a derived class.
22   Overrides        Specifies that a property or procedure overrides an identically named
                      property or procedure inherited from a base class.
23   ParamArray       ParamArray allows you to pass an arbitrary number of arguments to the
                      procedure. A ParamArray parameter is always declared using ByVal.
24   Partial          Indicates that a class or structure declaration is a partial definition of the
                      class or structure.
25   Private          Specifies that one or more declared programming elements are accessible
                      only from within their declaration context, including from within any
                      contained types.
26   Protected        Specifies that one or more declared programming elements are accessible
                      only from within their own class or from a derived class.
27   Public           Specifies that one or more declared programming elements have no
                      access restrictions.
28   ReadOnly         Specifies that a variable or property can be read but not written.
29   Shadows          Specifies that a declared programming element redeclares and hides an
                      identically named element, or set of overloaded elements, in a base class.
30   Shared           Specifies that one or more declared programming elements are associated
                      with a class or structure at large, and not with a specific instance of the
                      class or structure.
31   Static           Specifies that one or more declared local variables are to continue to exist
                                   24
                                          and retain their latest values after termination of the procedure in which
                                          they are declared.
        32        Unicode                 Specifies that Visual Basic should marshal all strings to Unicode values
                                          regardless of the name of the external procedure being declared.
        33        Widening                Indicates that a conversion operator (CType) converts a class or structure
                                          to a type that can hold all possible values of the original class or structure.
        34        WithEvents              Specifies that one or more declared member variables refer to an instance
                                          of a class that can raise events.
        35        WriteOnly               Specifies that a property can be written but not read.
VB.Net - Statements
        Previous Page
       Next Page  
       Declaration Statements
       The declaration statements are used to name and define procedures, variables,
       properties, arrays, and constants. When you declare a programming element, you can
       also define its data type, access level, and scope.
       The programming elements you may declare include variables, constants,
       enumerations, classes, structures, modules, interfaces, procedures, procedure
       parameters, function returns, external procedure references, operators, properties,
       events, and delegates.
       Following are the declaration statements in VB.Net −
Sr.N                            Statements and Description                                     Example
 o
1                                                                                      Dim number As
         Dim Statement
                                                                                       Integer
         Declares and allocates storage space for one or more variables.               Dim quantity As
                                                                                       Integer = 100
                                                       25
                                                                        Dim message As
                                                                        String = "Hello!"
2                                                                       Const maximum As
    Const Statement
                                                                        Long = 1000
    Declares and defines one or more constants.                         Const
                                                                        naturalLogBase As
                                                                        Object
                                                                        =
                                                                        CDec(2.7182818284)
3                                                                       Enum CoffeeMugSize
    Enum Statement
                                                                           Jumbo
    Declares an enumeration and defines the values of its members.         ExtraLarge
                                                                           Large
                                                                           Medium
                                                                           Small
                                                                        End Enum
4                                                                       Class Box
    Class Statement
                                                                        Public length As
    Declares the name of a class and introduces the definition of the   Double
    variables, properties, events, and procedures that the class        Public breadth As
    comprises.                                                          Double
                                                                        Public height As
                                                                        Double
                                                                        End Class
5                                                                       Structure Box
    Structure Statement
                                                                        Public length As
    Declares the name of a structure and introduces the definition of   Double
    the variables, properties, events, and procedures that the          Public breadth As
    structure comprises.                                                Double
                                                                        Public height As
                                                                        Double
                                                                        End Structure
6                                                                       Public Module
    Module Statement
                                                                        myModule
    Declares the name of a module and introduces the definition of      Sub Main()
    the variables, properties, events, and procedures that the          Dim user As String
    module comprises.                                                   =
                                                                        InputBox("What is
                                                                        your name?")
                                                                        MsgBox("User name
                                                                        is" & user)
                                                                        End Sub
                                                                        End Module
7                                                                       Public Interface
    Interface Statement
                                                                        MyInterface
    Declares the name of an interface and introduces the definitions       Sub
                                            26
     of the members that the interface comprises.                      doSomething()
                                                                       End Interface
8                                                                      Function
     Function Statement
                                                                       myFunction
     Declares the name, parameters, and code that define a Function    (ByVal n As
     procedure.                                                        Integer) As Double
                                                                          Return 5.87 * n
                                                                       End Function
9                                                                      Sub mySub(ByVal s
     Sub Statement
                                                                       As String)
     Declares the name, parameters, and code that define a Sub            Return
     procedure.                                                        End Sub
10                                                                     Declare Function
     Declare Statement
                                                                       getUserName
     Declares a reference to a procedure implemented in an external    Lib "advapi32.dll"
     file.                                                             Alias
                                                                       "GetUserNameA"
                                                                       (
                                                                          ByVal lpBuffer
                                                                       As String,
                                                                          ByRef nSize As
                                                                       Integer) As
                                                                       Integer
11                                                                     Public Shared
     Operator Statement
                                                                       Operator +
     Declares the operator symbol, operands, and code that define an   (ByVal x As obj,
     operator procedure on a class or structure.                       ByVal y As obj) As
                                                                       obj
                                                                           Dim r As New
                                                                       obj
                                                                       ' implemention
                                                                       code for r = x + y
                                                                           Return r
                                                                       End Operator
12                                                                     ReadOnly Property
     Property Statement
                                                                       quote() As String
     Declares the name of a property, and the property procedures         Get
     used to store and retrieve the value of the property.                    Return
                                                                       quoteString
                                                                          End Get
                                                                       End Property
13                                                                     Public Event
     Event Statement
                                                                       Finished()
     Declares a user-defined event.
14                                                                     Delegate Function
     Delegate Statement
                                            27
                                                                       MathOperator(
                                                                          ByVal x As
  Used to declare a delegate.                                          Double,
                                                                          ByVal y As
                                                                       Double
                                                                       ) As Double
Executable Statements
An executable statement performs an action. Statements calling a procedure,
branching to another place in the code, looping through several statements, or
evaluating an expression are executable statements. An assignment statement is a
special case of an executable statement.
Example
The following example demonstrates a decision making statement −
Module decisions
   Sub Main()
      'local variable definition '
      Dim a As Integer = 10
When the above code is compiled and executed, it produces the following result −
a is less than 20;
value of a is : 10
VB.Net - Directives
 Previous Page
Next Page  
The VB.Net compiler directives give instructions to the compiler to preprocess the
information before actual compilation starts. All these directives begin with #, and only
white-space characters may appear before a directive on a line. These directives are
not statements.
                                           28
VB.Net compiler does not have a separate preprocessor; however, the directives are
processed as if there was one. In VB.Net, the compiler directives are used to help in
conditional compilation. Unlike C and C++ directives, they are not used to create
macros.
Module mydirectives
#Const age = True
Sub Main()
   #If age Then
      Console.WriteLine("You are welcome to the Robotics Club")
   #End If
   Console.ReadKey()
End Sub
End Module
When the above code is compiled and executed, it produces the following result −
You are welcome to the Robotics Club
                                            29
The #ExternalSource Directive
This directive is used for indicating a mapping between specific lines of source code
and text external to the source. It is used only by the compiler and the debugger has no
effect on code compilation.
This directive allows including external code from an external code file into a source
code file.
Syntax for this directive is −
#ExternalSource( StringLiteral , IntLiteral )
   [ LogicalLine ]
#End ExternalSource
The parameters of #ExternalSource directive are the path of external file, line number
of the first line, and the line where the error occurred.
Example
The following code demonstrates a hypothetical use of the directive −
Module mydirectives
   Public Class ExternalSourceTester
Sub TestExternalSource()
        #ExternalSource("c:\vbprogs\directives.vb", 5)
           Console.WriteLine("This is External Code. ")
        #End ExternalSource
      End Sub
   End Class
   Sub Main()
      Dim t As New ExternalSourceTester()
      t.TestExternalSource()
      Console.WriteLine("In Main.")
      Console.ReadKey()
End Sub
When the above code is compiled and executed, it produces the following result −
This is External Code.
In Main.
The #If...Then...#Else Directives
This directive conditionally compiles selected blocks of Visual Basic code.
Syntax for this directive is −
#If expression Then
   statements
                                           30
[ #ElseIf expression Then
    [ statements ]
...
#ElseIf expression Then
    [ statements ] ]
[ #Else
    [ statements ] ]
#End If
For example,
#Const TargetOS = "Linux"
#If TargetOS = "Windows 7" Then
   ' Windows 7 specific code
#ElseIf TargetOS = "WinXP" Then
   ' Windows XP specific code
#Else
   ' Code for other OS
#End if
Example
The following code demonstrates a hypothetical use of the directive −
Module mydirectives
#Const classCode = 8
   Sub Main()
   #If classCode = 7 Then
      Console.WriteLine("Exam Questions for Class VII")
   #ElseIf classCode = 8 Then
      Console.WriteLine("Exam Questions for Class VIII")
   #Else
      Console.WriteLine("Exam Questions for Higher Classes")
   #End If
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
Exam Questions for Class VIII
The #Region Directive
This directive helps in collapsing and hiding sections of code in Visual Basic files.
Syntax for this directive is −
#Region "identifier_string"
#End Region
For example,
                                            31
#Region "StatsFunctions"
   ' Insert code for the Statistical functions here.
#End Region
                               VB.Net - Operators
An operator is a symbol that tells the compiler to perform specific mathematical or
logical manipulations. VB.Net is rich in built-in operators and provides following types
of commonly used operators −
        Arithmetic Operators
        Comparison Operators
        Logical/Bitwise Operators
        Bit Shift Operators
        Assignment Operators
        Miscellaneous Operators
This tutorial will explain the most commonly used operators.
Arithmetic Operators
Following table shows all the arithmetic operators supported by VB.Net. Assume
variable A holds 2 and variable B holds 7, then −
 Previous Page
Next Page  
Following table shows all the arithmetic operators supported by VB.Net. Assume
variable A holds 2 and variable B holds 7, then −
                                              32
-          Subtracts second operand from the first                              A - B will give -5
/ Divides one operand by another and returns a floating point result B / A will give 3.5
\ Divides one operand by another and returns an integer result B \ A will give 3
MOD Modulus Operator and remainder of after an integer division B MOD A will give 1
Example
Try the following example to understand all the arithmetic operators available in VB.Net
−
                                                                                   Live Demo
Module operators
   Sub Main()
      Dim a As Integer = 21
      Dim b As Integer = 10
      Dim p As Integer = 2
      Dim c As Integer
      Dim d As Single
       c = a + b
       Console.WriteLine("Line 1 - Value of c is {0}", c)
       c = a - b
       Console.WriteLine("Line 2 - Value of c is {0}", c)
       c = a * b
       Console.WriteLine("Line 3 - Value of c is {0}", c)
       d = a / b
       Console.WriteLine("Line 4 - Value of d is {0}", d)
       c = a \ b
       Console.WriteLine("Line 5 - Value of c is {0}", c)
       c = a Mod b
       Console.WriteLine("Line 6 - Value of c is {0}", c)
c = b ^ p
                                            33
            Console.WriteLine("Line 7 - Value of c is {0}", c)
            Console.ReadLine()
         End Sub
      End Module
      When the above code is compiled and executed, it produces the following result −
     Line    1   -   Value   of   c   is   31
     Line    2   -   Value   of   c   is   11
     Line    3   -   Value   of   c   is   210
     Line    4   -   Value   of   d   is   2.1
     Line    5   -   Value   of   c   is   2
     Line    6   -   Value   of   c   is   1
     Line    7   -   Value   of   c   is   100
Operato                                    Description                                    Example
   r
/ Divides one operand by another and returns a floating point result B / A will give 3.5
\ Divides one operand by another and returns an integer result B \ A will give 3
MOD Modulus Operator and remainder of after an integer division B MOD A will give 1
      Comparison Operators
      Following table shows all the comparison operators supported by VB.Net. Assume
      variable A holds 10 and variable B holds 20, then −
       Previous Page
      Next Page  
      Following table shows all the comparison operators supported by VB.Net. Assume
      variable A holds 10 and variable B holds 20, then −
                                                         34
 Operato                                     Description                                      Example
    r
=           Checks if the values of two operands are equal or not; if yes, then condition     (A = B)
            becomes true.                                                                     is not
                                                                                              true.
<>          Checks if the values of two operands are equal or not; if values are not          (A <> B)
            equal, then condition becomes true.                                               is true.
>           Checks if the value of left operand is greater than the value of right            (A > B)
            operand; if yes, then condition becomes true.                                     is not
                                                                                              true.
<           Checks if the value of left operand is less than the value of right operand; if   (A < B)
            yes, then condition becomes true.                                                 is true.
>=          Checks if the value of left operand is greater than or equal to the value of      (A >= B)
            right operand; if yes, then condition becomes true.                               is not
                                                                                              true.
<=          Checks if the value of left operand is less than or equal to the value of right   (A <= B)
            operand; if yes, then condition becomes true.                                     is true.
Try the following example to understand all the relational operators available in VB.Net
−
                                                                               Live Demo
Module operators
   Sub Main()
      Dim a As Integer = 21
      Dim b As Integer = 10
      If (a = b) Then
         Console.WriteLine("Line 1 - a is equal to b")
      Else
         Console.WriteLine("Line 1 - a is not equal to b")
      End If
If (a < b) Then
                                           35
          Console.WriteLine("Line 2 - a is less than b")
       Else
           Console.WriteLine("Line 2 - a is not less than b")
       End If
       If (a > b) Then
          Console.WriteLine("Line 3 - a is greater than b")
       Else
          Console.WriteLine("Line 3 - a is not greater than b")
       End If
       ' Lets change value of a and b
       a = 5
       b = 20
      If (a <= b) Then
           Console.WriteLine("Line 4 - a is either less than or
equal to b")
      End If
      If (b >= a) Then
         Console.WriteLine("Line 5 - b is either greater than or
equal to b")
      End If
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
Line   1   -   a   is   not equal to b
Line   2   -   a   is   not less than b
Line   3   -   a   is   greater than b
Line   4   -   a   is   either less than or equal to b
Line   5   -   b   is   either greater than or equal to b
Apart from the above, VB.Net provides three more comparison operators, which we will
be using in forthcoming chapters; however, we give a brief description here.
    Is Operator − It compares two object reference variables and determines if two
      object references refer to the same object without performing value
      comparisons. If object1 and object2 both refer to the exact same object
      instance, result is True; otherwise, result is False.
    IsNot Operator − It also compares two object reference variables and
      determines if two object references refer to different objects. If object1 and
      object2 both refer to the exact same object instance, result is False; otherwise,
      result is True.
    Like Operator − It compares a string against a pattern.
                                           36
Operato                                             Description                                           Example
   r
=             Checks if the values of two operands are equal or not; if yes, then condition               (A = B)
              becomes true.                                                                               is not
                                                                                                          true.
<>            Checks if the values of two operands are equal or not; if values are not equal, then        (A <> B)
              condition becomes true.                                                                     is true.
>             Checks if the value of left operand is greater than the value of right operand; if yes,     (A > B)
              then condition becomes true.                                                                is not
                                                                                                          true.
<             Checks if the value of left operand is less than the value of right operand; if yes, then   (A < B)
              condition becomes true.                                                                     is true.
>=            Checks if the value of left operand is greater than or equal to the value of right          (A >= B)
              operand; if yes, then condition becomes true.                                               is not
                                                                                                          true.
<=            Checks if the value of left operand is less than or equal to the value of right operand;    (A <= B)
              if yes, then condition becomes true.                                                        is true.
     Apart from the above, VB.Net provides three more comparison operators, which we will
     be using in forthcoming chapters; however, we give a brief description here.
              Is Operator − It compares two object reference variables and determines if two
                object references refer to the same object without performing value
                comparisons. If object1 and object2 both refer to the exact same object
                instance, result is True; otherwise, result is False.
              IsNot Operator − It also compares two object reference variables and
                determines if two object references refer to different objects. If object1 and
                object2 both refer to the exact same object instance, result is False; otherwise,
                result is True.
              Like Operator − It compares a string against a pattern.
     Logical/Bitwise Operators
     Following table shows all the logical operators supported by VB.Net. Assume variable
     A holds Boolean value True and variable B holds Boolean value False, then −
                                                         37
 Previous Page
Next Page  
Following table shows all the logical operators supported by VB.Net. Assume variable
A holds Boolean value True and variable B holds Boolean value False, then −
 And          It is the logical as well as bitwise AND operator. If both the operands are true, then    (A And
              condition becomes true. This operator does not perform short-circuiting, i.e., it         B) is
              evaluates both the expressions.                                                           False.
 Or           It is the logical as well as bitwise OR operator. If any of the two operands is true,     (A Or B)
              then condition becomes true. This operator does not perform short-circuiting, i.e., it    is True.
              evaluates both the expressions.
 Not          It is the logical as well as bitwise NOT operator. Used to reverse the logical state of   Not(A
              its operand. If a condition is true, then Logical NOT operator will make false.           And B) is
                                                                                                        True.
 Xor          It is the logical as well as bitwise Logical Exclusive OR operator. It returns False if   A Xor B
              both expressions are True or both expressions are False; otherwise, it returns True.      is True.
              This operator does not perform short-circuiting, it always evaluates both
              expressions and there is no short-circuiting counterpart of this operator
 AndAlso      It is the logical AND operator. It works only on Boolean data. It performs short-         (A
              circuiting.                                                                               AndAlso
                                                                                                        B) is
                                                                                                        False.
 OrElse       It is the logical OR operator. It works only on Boolean data. It performs short-          (A
              circuiting.                                                                               OrElse
                                                                                                        B) is
                                                                                                        True.
                                                 38
IsTrue      It determines whether an expression is True.
Try the following example to understand all the logical/bitwise operators available in
VB.Net −
                                                                            Live Demo
Module logicalOp
   Sub Main()
      Dim a As Boolean         = True
      Dim b As Boolean         = True
      Dim c As Integer         = 5
      Dim d As Integer         = 20
      'logical And, Or         and Xor Checking
         If (a And b) Then
            Console.WriteLine("Line 1 - Condition is true")
         End If
         If (a Or b) Then
             Console.WriteLine("Line 2 - Condition is true")
         End If
         If (a Xor b) Then
             Console.WriteLine("Line 3 - Condition is true")
         End If
           'bitwise And, Or and Xor Checking
         If (c And d) Then
            Console.WriteLine("Line 4 - Condition is true")
         End If
         If (c Or d) Then
            Console.WriteLine("Line 5 - Condition is true")
         End If
         If (c Or d) Then
            Console.WriteLine("Line 6 - Condition is true")
         End If
            'Only logical operators
         If (a AndAlso b) Then
            Console.WriteLine("Line 7 - Condition is true")
         End If
         If (a OrElse b) Then
            Console.WriteLine("Line 8 - Condition is true")
         End If
                                             39
               Console.WriteLine("Line 9 - Condition is not true")
            End If
            If (Not (a And b)) Then
               Console.WriteLine("Line 10 - Condition is true")
            End If
               Console.ReadLine()
         End Sub
      End Module
      When the above code is compiled and executed, it produces the following result −
     Line    1 - Condition is true
     Line    2 - Condition is true
     Line    3 - Condition is true
     Line    4 - Condition is true
     Line    5 - Condition is true
     Line    6 - Condition is true
     Line    7 - Condition is true
     Line    8 - Condition is true
     Line    9 - Condition is not true
     Line    10 - Condition is true
Operato                               Description                                                     Example
   r
And         It is the logical as well as bitwise AND operator. If both the operands are true, then    (A And
            condition becomes true. This operator does not perform short-circuiting, i.e., it         B) is
            evaluates both the expressions.                                                           False.
Or          It is the logical as well as bitwise OR operator. If any of the two operands is true,     (A Or B)
            then condition becomes true. This operator does not perform short-circuiting, i.e., it    is True.
            evaluates both the expressions.
Not         It is the logical as well as bitwise NOT operator. Use to reverses the logical state of   Not(A
            its operand. If a condition is true, then Logical NOT operator will make false.           And B) is
                                                                                                      True.
Xor         It is the logical as well as bitwise Logical Exclusive OR operator. It returns True if    A Xor B
            both expressions are True or both expressions are False; otherwise it returns False.      is True.
            This operator does not perform short-circuiting, it always evaluates both expressions
            and there is no short-circuiting counterpart of this operator.
AndAlso     It is the logical AND operator. It works only on Boolean data. It performs short-         (A
            circuiting.                                                                               AndAlso
                                                                                                      B) is
                                                                                                      False.
OrElse      It is the logical OR operator. It works only on Boolean data. It performs short-          (A
            circuiting.                                                                               OrElse
                                                                                                      B) is
                                                       40
                                                                                               True.
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1
         Assume if A = 60; and B = 13; now in binary format they will be as follows −
         A = 0011 1100
         B = 0000 1101
         -----------------
         A&B = 0000 1100
         A|B = 0011 1101
         A^B = 0011 0001
         ~A  = 1100 0011
         We have seen that the Bitwise operators supported by VB.Net are And, Or, Xor and
         Not. The Bit shift operators are >> and << for left shift and right shift, respectively.
         Assume that the variable A holds 60 and variable B holds 13, then −
                                                        41
 Previous Page
Next Page  
Assume that the variable A holds 60 and variable B holds 13, then −
 And          Bitwise AND Operator copies a bit to the result if it exists in both operands.     (A AND B)
                                                                                                 will give 12,
                                                                                                 which is
                                                                                                 0000 1100
 Xor          Binary XOR Operator copies the bit if it is set in one operand but not both.       (A Xor B)
                                                                                                 will give 49,
                                                                                                 which is
                                                                                                 0011 0001
 Not          Binary Ones Complement Operator is unary and has the effect of 'flipping' bits.    (Not A ) will
                                                                                                 give -61,
                                                                                                 which is
                                                                                                 1100 0011
                                                                                                 in 2's
                                                                                                 complement
                                                                                                 form due to
                                                                                                 a signed
                                                                                                 binary
                                                                                                 number.
 <<           Binary Left Shift Operator. The left operand's value is moved left by the number   A << 2 will
              of bits specified by the right operand.                                            give 240,
                                                                                                 which is
                                                                                                 1111 0000
 >>           Binary Right Shift Operator. The left operand's value is moved right by the        A >> 2 will
                                                                                                 give 15,
                                                 42
                     number of bits specified by the right operand.                                      which is
                                                                                                         0000 1111
      Try the following example to understand all the bitwise operators available in VB.Net −
                                                                                             Live Demo
      Module BitwiseOp
         Sub Main()
            Dim a As Integer = 60       ' 60 = 0011 1100
            Dim b As Integer = 13       ' 13 = 0000 1101
            Dim c As Integer = 0
            c = a And b       ' 12 = 0000 1100
            Console.WriteLine("Line 1 - Value of c is {0}", c)
            c = a Or b       ' 61 = 0011 1101
      When the above code is compiled and executed, it produces the following result −
     Line    1   -   Value   of   c   is   12
     Line    2   -   Value   of   c   is   61
     Line    3   -   Value   of   c   is   49
     Line    4   -   Value   of   c   is   -61
     Line    5   -   Value   of   c   is   240
     Line    6   -   Value   of   c   is   15
Operato                                          Description                                      Example
   r
And         Bitwise AND Operator copies a bit to the result if it exists in both operands.       (A AND B)
                                                                                                 will give 12,
                                                                                                 which is
                                                                                                 0000 1100
                                                       43
Or         Binary OR Operator copies a bit if it exists in either operand.                      (A Or B) will
                                                                                                give 61,
                                                                                                which is
                                                                                                0011 1101
Xor        Binary XOR Operator copies the bit if it is set in one operand but not both.         (A Xor B)
                                                                                                will give 49,
                                                                                                which is
                                                                                                0011 0001
Not        Binary Ones Complement Operator is unary and has the effect of 'flipping' bits.      (Not A ) will
                                                                                                give -61,
                                                                                                which is
                                                                                                1100 0011
                                                                                                in 2's
                                                                                                complement
                                                                                                form due to
                                                                                                a signed
                                                                                                binary
                                                                                                number.
<<         Binary Left Shift Operator. The left operands value is moved left by the number of   A << 2 will
           bits specified by the right operand.                                                 give 240,
                                                                                                which is
                                                                                                1111 0000
>>         Binary Right Shift Operator. The left operands value is moved right by the number    A >> 2 will
           of bits specified by the right operand.                                              give 15,
                                                                                                which is
                                                                                                0000 1111
      Assignment Operators
      There are following assignment operators supported by VB.Net −
       Previous Page
      Next Page  
                                                      44
=     Simple assignment operator, Assigns values from right side operands to left side      C=A+B
      operand                                                                               will assign
                                                                                            value of A
                                                                                            + B into C
+=    Add AND assignment operator, It adds right operand to the left operand and            C += A is
      assigns the result to left operand                                                    equivalent
                                                                                            to C = C +
                                                                                            A
-=    Subtract AND assignment operator, It subtracts right operand from the left operand    C -= A is
      and assigns the result to left operand                                                equivalent
                                                                                            to C = C -
                                                                                            A
*=    Multiply AND assignment operator, It multiplies right operand with the left operand   C *= A is
      and assigns the result to left operand                                                equivalent
                                                                                            to C = C *
                                                                                            A
/=    Divide AND assignment operator, It divides left operand with the right operand and    C /= A is
      assigns the result to left operand (floating point division)                          equivalent
                                                                                            to C = C /
                                                                                            A
\=    Divide AND assignment operator, It divides left operand with the right operand and    C \= A is
      assigns the result to left operand (Integer division)                                 equivalent
                                                                                            to C =
                                                                                            C \A
^=    Exponentiation and assignment operator. It raises the left operand to the power of    C^=A is
      the right operand and assigns the result to left operand                              equivalent
                                                                                            to C = C ^
                                                                                            A
                                        45
                                                                                              << 2
&=        Concatenates a String expression to a String variable or property and assigns the
                                                                                              Str1 &=
          result to the variable or property.
                                                                                              Str2 is
                                                                                              same as
                                                                                              Str1   =
                                                                                              Str1   &
                                                                                              Str2
Example
Try the following example to understand all the assignment operators available in
VB.Net −
Module assignment
   Sub Main()
      Dim a As Integer = 21
      Dim pow As Integer = 2
      Dim str1 As String = "Hello! "
      Dim str2 As String = "VB Programmers"
      Dim c As Integer
      c = a
      Console.WriteLine("Line 1 - = Operator Example, _
      Value of c = {0}", c)
         c += a
         Console.WriteLine("Line 2 - += Operator Example,                       _
      Value of c = {0}", c)
         c -= a
         Console.WriteLine("Line 3 - -= Operator Example,                       _
      Value of c = {0}", c)
         c *= a
         Console.WriteLine("Line 4 - *= Operator Example,                       _
      Value of c = {0}", c)
         c /= a
         Console.WriteLine("Line 5 - /= Operator Example,                       _
      Value of c = {0}", c)
         c = 20
         c ^= pow
         Console.WriteLine("Line 6 - ^= Operator Example,                       _
      Value of c = {0}", c)
                                           46
              c <<= 2
              Console.WriteLine("Line 7 - <<= Operator Example,_
           Value of c = {0}", c)
              c >>= 2
              Console.WriteLine("Line 8 - >>= Operator Example,_
           Value of c = {0}", c)
              str1 &= str2
              Console.WriteLine("Line 9 - &= Operator Example,_
           Value of str1 = {0}", str1)
              Console.ReadLine()
        End Sub
     End Module
     When the above code is compiled and executed, it produces the following result −
     Line    1   -   = Operator Example, Value of c = 21
     Line    2   -   += Operator Example, Value of c = 42
     Line    3   -   -= Operator Example, Value of c = 21
     Line    4   -   *= Operator Example, Value of c = 441
     Line    5   -   /= Operator Example, Value of c = 21
     Line    6   -   ^= Operator Example, Value of c = 400
     Line    7   -   <<= Operator Example, Value of c = 1600
     Line    8   -   >>= Operator Example, Value of c = 400
     Line    9   -   &= Operator Example, Value of str1 = Hello! VB Programmers
Operato                                  Description                         Example
   r
=           Simple assignment operator, Assigns values from right side operands to left side      C=A+B
            operand                                                                               will assign
                                                                                                  value of A
                                                                                                  + B into C
+=          Add AND assignment operator, It adds right operand to the left operand and            C += A is
            assigns the result to left operand                                                    equivalent
                                                                                                  to C = C +
                                                                                                  A
-=          Subtract AND assignment operator, It subtracts right operand from the left operand    C -= A is
            and assigns the result to left operand                                                equivalent
                                                                                                  to C = C -
                                                                                                  A
*=          Multiply AND assignment operator, It multiplies right operand with the left operand   C *= A is
            and assigns the result to left operand                                                equivalent
                                                                                                  to C = C *
                                                                                                  A
/=          Divide AND assignment operator, It divides left operand with the right operand and    C /= A is
                                                                                                  equivalent
                                                     47
           assigns the result to left operand (floating point division)                         to C = C /
                                                                                                A
\=         Divide AND assignment operator, It divides left operand with the right operand and   C \= A is
           assigns the result to left operand (Integer division)                                equivalent
                                                                                                to C =
                                                                                                C \A
^=         Exponentiation and assignment operator. It raises the left operand to the power of   C^=A is
           the right operand and assigns the result to left operand.                            equivalent
                                                                                                to C = C ^
                                                                                                A
&=         Concatenates a String expression to a String variable or property and assigns the
           result to the variable or property.
                                                                                                Str1 &=
                                                                                                Str2 is
                                                                                                same as
                                                                                                Str1    =
                                                                                                Str1    &
                                                                                                Str2
      Miscellaneous Operators
      There are few other important operators supported by VB.Net.
       Previous Page
      Next Page  
                                                       48
AddressOf     Returns the address of a procedure.          AddHandler Button1.Click,
                                                           AddressOf Button1_Click
Example
The following example demonstrates some of these operators −
Module assignment
   Sub Main()
      Dim a As Integer = 21
      Console.WriteLine(GetType(Integer).ToString())
      Console.WriteLine(GetType(Double).ToString())
      Console.WriteLine(GetType(String).ToString())
When the above code is compiled and executed, it produces the following result −
System.Int32
System.Double
System.String
                                             49
25
Positive
   Operator                    Description                                  Example
 Previous Page
Next Page  
                                                50
others; for example, the multiplication operator has higher precedence than the
addition operator −
For example, x = 7 + 3 * 2; here, x is assigned 13, not 20 because operator * has
higher precedence than +, so it first get multiplied with 3*2 and then adds into 7.
Here, operators with the highest precedence appear at the top of the table, those with
the lowest appear at the bottom. Within an expression, higher precedence operators
will be evaluated first.
Operator Precedence
Await Highest
Exponentiation (^)
All comparison operators (=, <>, <, <=, >, >=, Is, IsNot, Like,
TypeOf...Is)
Negation (Not)
                                                    51
        Inclusive disjunction (Or, OrElse)
        Example
        The following example demonstrates operator precedence in a simple way −
                                                                                     Live Demo
        Module assignment
           Sub Main()
              Dim a As Integer = 20
              Dim b As Integer = 10
              Dim c As Integer = 15
              Dim d As Integer = 5
              Dim e As Integer
              e = (a + b) * c / d              ' ( 30 * 15 ) / 5
                Console.WriteLine("Value of (a + b) * c / d is : {0}", e)
                e = ((a + b) * c) / d    ' (30 * 15 ) / 5
                Console.WriteLine("Value of (a + b) * (c / d) is                : {0}", e)
                e = a + (b * c) / d     ' 20 + (150/5)
              Console.WriteLine("Value of a + (b * c) / d is                   : {0}", e)
              Console.ReadLine()
           End Sub
        End Module
        When the above code is compiled and executed, it produces the following result −
        Value   of   (a + b) * c / d is : 90
        Value   of   ((a + b) * c) / d is : 90
        Value   of   (a + b) * (c / d) is : 90
        Value   of   a + (b * c) / d is : 50
                              Operator                                          Precedence
Await Highest
Exponentiation (^)
                                                 52
Multiplication and floating-point division (*, /)
All comparison operators (=, <>, <, <=, >, >=, Is, IsNot, Like,
TypeOf...Is)
Negation (Not)
       Decision making structures require that the programmer specify one or more conditions
       to be evaluated or tested by the program, along with a statement or statements to be
       executed if the condition is determined to be true, and optionally, other statements to
       be executed if the condition is determined to be false.
       Following is the general form of a typical decision making structure found in most of the
       programming languages −
                                                       53
     VB.Net provides the following types of decision making statements. Click the following
     links to check their details.
                                 Statement                                           Description
If the condition evaluates to true, then the block of code inside the If
statement will be executed. If condition evaluates to false, then the first
set of code after the end of the If statement (after the closing End If) will
be executed.
Flow Diagram
                                                   54
Example
                                                          Live Demo
Module decisions
   Sub Main()
      'local variable definition
      Dim a As Integer = 10
                                             55
The syntax of an If...Then... Else statement in VB.Net is as follows −        false.
If(boolean_expression)Then
   'statement(s) will execute if the Boolean expression
is true
Else
  'statement(s) will execute if the Boolean expression
is false
End If
If the Boolean expression evaluates to true, then the if block of code will
be executed, otherwise else block of code will be executed.
Flow Diagram
Example
                                                                Live Demo
Module decisions
   Sub Main()
       'local variable definition '
      Dim a As Integer = 100
                                                 56
           Console.WriteLine("a is not less than 20")
      End If
      Console.WriteLine("value of a is : {0}", a)
      Console.ReadLine()
   End Sub
End Module
Syntax
The syntax of an if...else if...else statement in VB.Net is as follows −
If(boolean_expression 1)Then
   ' Executes when the boolean expression 1 is true
ElseIf( boolean_expression 2)Then
   ' Executes when the boolean expression 2 is true
ElseIf( boolean_expression 3)Then
   ' Executes when the boolean expression 3 is true
Else
   ' executes when the none of the above condition is
true
End If
Example
                                                                  Live Demo
Module decisions
   Sub Main()
      'local variable definition '
      Dim a As Integer = 100
                                                   57
      ' check the boolean condition '
      If (a = 10) Then
           ' if condition is true then print the
following '
           Console.WriteLine("Value of a is 10") '
      ElseIf (a = 20) Then
           'if else if condition is true '
           Console.WriteLine("Value of a is 20") '
      ElseIf (a = 30) Then
           'if else if condition is true
           Console.WriteLine("Value of a is 30")
      Else
           'if none of the conditions is true
           Console.WriteLine("None of the values is
matching")
      End If
      Console.WriteLine("Exact value of a is: {0}", a)
      Console.ReadLine()
   End Sub
End Module
Syntax
The syntax for a nested If statement is as follows −
If( boolean_expression 1)Then
   'Executes when the boolean expression 1 is true
   If(boolean_expression 2)Then
          'Executes when the boolean expression 2 is true
   End If
End If
                                                 58
You can nest ElseIf...Else in the similar way as you have nested If
statement.
Example
                                                              Live Demo
Module decisions
   Sub Main()
      'local variable definition
      Dim a As Integer = 100
      Dim b As Integer = 200
      ' check the boolean condition
      If (a = 100) Then
         ' if condition is true then check the following
          If (b = 200) Then
             ' if condition is true then print the
following
             Console.WriteLine("Value of a is 100 and b
is 200")
         End If
      End If
      Console.WriteLine("Exact value of a is : {0}", a)
      Console.WriteLine("Exact value of b is : {0}", b)
      Console.ReadLine()
   End Sub
End Module
Syntax
The syntax for a Select Case statement in VB.Net is as follows −
                                               59
Select [ Case ] expression
   [ Case expressionlist
      [ statements ] ]
   [ Case Else
      [ elsestatements ] ]
End Select
Where,
     expression − is an expression that must evaluate to any of the
      elementary data type in VB.Net, i.e., Boolean, Byte, Char, Date,
      Double, Decimal, Integer, Long, Object, SByte, Short, Single,
      String, UInteger, ULong, and UShort.
     expressionlist − List of expression clauses representing match
      values for expression. Multiple expression clauses are separated
      by commas.
     statements − statements following Case that run if the select
      expression matches any clause in expressionlist.
     elsestatements − statements following Case Else that run if the
      select expression does not match any clause in
      the expressionlist of any of the Case statements.
Flow Diagram
Example
                                              60
                                                              Live Demo
Module decisions
   Sub Main()
      'local variable definition
      Dim grade As Char
      grade = "B"
      Select grade
           Case "A"
               Console.WriteLine("Excellent!")
           Case "B", "C"
               Console.WriteLine("Well done")
           Case "D"
               Console.WriteLine("You passed")
           Case "F"
               Console.WriteLine("Better try again")
           Case Else
               Console.WriteLine("Invalid grade")
      End Select
      Console.WriteLine("Your grade is {0}", grade)
      Console.ReadLine()
   End Sub
End Module
Example
                                                              Live Demo
Module decisions
   Sub Main()
      'local variable definition
      Dim a As Integer = 100
      Dim b As Integer = 200
      Select a
                                               61
          Case 100
             Console.WriteLine("This is part of outer
case ")
            Select Case b
               Case 200
                  Console.WriteLine("This is part of
inner case ")
            End Select
         End Select
      Console.WriteLine("Exact value of a is : {0}", a)
      Console.WriteLine("Exact value of b is : {0}", b)
      Console.ReadLine()
   End Sub
End Module
                                 VB.Net - Loops
    There may be a situation when you need to execute a block of code several number of
    times. In general, statements are executed sequentially: The first statement in a
    function is executed first, followed by the second, and so on.
    Programming languages provide various control structures that allow for more
    complicated execution paths.
    A loop statement allows us to execute a statement or group of statements multiple
    times and following is the general form of a loop statement in most of the programming
    languages −
                                              62
       VB.Net provides following types of loops to handle looping requirements. Click the
       following links to check their details.
                                Loop Type                                       Description
                                               63
   [ statements ]
Loop { While | Until } condition
Flow Diagram
Example
Module loops
   Sub Main()
      ' local variable definition
      Dim a As Integer = 10
      'do loop execution
      Do
          Console.WriteLine("value of a: {0}", a)
           a = a + 1
      Loop While (a < 20)
      Console.ReadLine()
   End Sub
End Module
                                        64
value of a: 19
The program would behave in same way, if you use an Until statement,
instead of While −
Module loops
   Sub Main()
      ' local variable definition
      Dim a As Integer = 10
      'do loop execution
        Do
          Console.WriteLine("value of a: {0}", a)
           a = a + 1
      Loop Until (a = 20)
      Console.ReadLine()
   End Sub
End Module
                                        66
value   of   a:   15
value   of   a:   16
value   of   a:   17
value   of   a:   18
value   of   a:   19
value   of   a:   20
If you want to use a step size of 2, for example, you need to display only
even numbers, between 10 and 20 −
Module loops
   Sub Main()
      Dim a As Byte
      ' for loop execution
      For a = 10 To 20 Step 2
           Console.WriteLine("value of a: {0}", a)
      Next
      Console.ReadLine()
   End Sub
End Module
                                                 67
Module loops
   Sub Main()
      Dim anArray() As Integer = {1, 3, 5, 7, 9}
      Dim arrayItem As Integer
     'displaying the values
Flow Diagram
                                                 68
Here, key point of the While loop is that the loop might not ever run.
When the condition is tested and the result is false, the loop body will be
skipped and the first statement after the while loop will be executed.
Example
Module loops
   Sub Main()
      Dim a As Integer = 10
      ' while loop execution '
      While a < 20
         Console.WriteLine("value of a: {0}", a)
         a = a + 1
      End While
      Console.ReadLine()
   End Sub
End Module
                                                 69
value   of   a:   15
value   of   a:   16
value   of   a:   17
value   of   a:   18
value   of   a:   19
                                                70
VB.Net allows using one loop inside another loop. Following section           Do loop.
shows few examples to illustrate the concept.
Syntax
The syntax for a nested For loop statement in VB.Net is as follows −
For counter1 [ As datatype1 ] = start1 To end1 [ Step
step1 ]
   For counter2 [ As datatype2 ] = start2 To end2 [ Step
step2 ]
      ...
   Next [ counter2 ]
Next [ counter 1]
The syntax for a nested While loop statement in VB.Net is as follows −
While condition1
   While condition2
      ...
   End While
End While
The syntax for a nested Do...While loop statement in VB.Net is as
follows −
Do { While | Until } condition1
   Do { While | Until } condition2
      ...
   Loop
Loop
A final note on loop nesting is that you can put any type of loop inside of
any other type of loop. For example, a for loop can be inside a while
loop or vice versa.
Example
The following program uses a nested for loop to find the prime numbers
from 2 to 100 −
                                                                Live Demo
Module loops
   Sub Main()
      ' local variable definition
      Dim i, j As Integer
      For i = 2 To 100
         For j = 2 To i
             ' if factor found, not prime
            If ((i Mod j) = 0) Then
                Exit For
            End If
                                                 71
         Next j
            If (j > (i \ j)) Then
               Console.WriteLine("{0} is prime", i)
            End If
         Next i
      Console.ReadLine()
   End Sub
End Module
                                                72
                                                                                    t case statement
The Exit statement transfers the control from a procedure or block                  and       transfers
immediately to the statement following the procedure call or the block              execution to the
definition. It terminates the loop, procedure, try block or the select block from   statement
where it is called.                                                                 immediately
                                                                                    following the loop
If you are using nested loops (i.e., one loop inside another loop), the Exit        or select case.
statement will stop the execution of the innermost loop and start executing
the next line of code after the block.
Syntax
The syntax for the Exit statement is −
Exit { Do | For | Function | Property | Select | Sub | Try
| While }
Flow Diagram
Example
                                                                      Live Demo
Module loops
   Sub Main()
      ' local variable definition
      Dim a As Integer = 10
      ' while loop execution '
                                                  73
         If (a > 15) Then
            'terminate the loop using exit statement
            Exit While
         End If
      End While
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces the following
result −
value   of   a:   10
value   of   a:   11
value   of   a:   12
value   of   a:   13
value   of   a:   14
value   of   a:   15
Syntax
The syntax for a Continue statement is as follows −
Continue { Do | For | While }
Flow Diagram
                                               74
Example
Module loops
   Sub Main()
      ' local variable definition
      Dim a As Integer = 10
      Do
         If (a = 15) Then
             ' skip the iteration '
             a = a + 1
             Continue Do
         End If
         Console.WriteLine("value of a: {0}", a)
         a = a + 1
      Loop While (a < 20)
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces the following
result −
value   of   a:   10
value   of   a:   11
value   of   a:   12
value   of   a:   13
value   of   a:   14
value   of   a:   16
value   of   a:   17
value   of   a:   18
value   of   a:   19
                                            75
                VB.Net - GoTo Statement                                         Transfers control
                                                                                to the labeled
                                                                                statement.
The GoTo statement transfers control unconditionally to a specified line in a   Though it is not
procedure.                                                                      advised to use
                                                                                GoTo statement
The syntax for the GoTo statement is −                                          in your program.
GoTo label
Flow Diagram
Example
Module loops
   Sub Main()
      ' local variable definition
       Dim a As Integer = 10
Line1:
       Do
          If (a = 15) Then
             ' skip the iteration '
             a = a + 1
             GoTo Line1
          End If
          Console.WriteLine("value of a: {0}", a)
          a = a + 1
       Loop While (a < 20)
       Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces the following
                                                76
result −
value   of     a:   10
value   of     a:   11
value   of     a:   12
value   of     a:   13
value   of     a:   14
value   of     a:   16
value   of     a:   17
value   of     a:   18
value   of     a:   19
VB.Net - Strings
      Previous Page
     Next Page  
     In VB.Net, you can use strings as array of characters, however, more common practice
     is to use the String keyword to declare a string variable. The string keyword is an alias
     for the System.String class.
     Module strings
        Sub Main()
           Dim fname, lname, fullname, greetings As String
           fname = "Rowan"
           lname = "Atkinson"
           fullname = fname + " " + lname
           Console.WriteLine("Full Name: {0}", fullname)
                                                      77
        Dim letters As Char() = {"H", "e", "l", "l", "o"}
        greetings = New String(letters)
        Console.WriteLine("Greetings: {0}", greetings)
When the above code is compiled and executed, it produces the following result −
Full Name: Rowan Atkinson
Greetings: Hello
Message: Hello From Tutorials Point
Message: Message sent at 5:58 PM on Wednesday, December 12, 2012
Properties of the String Class
The String class has the following two properties −
1
         Chars
         Gets the Char object at a specified position in the current String object.
2
         Length
         Gets the number of characters in the current String object.
                                            78
Sr.N                                   Method Name & Description
 o
1
       Public Shared Function Compare ( strA As String, strB As String ) As Integer
       Compares two specified string objects and returns an integer that indicates their relative
       position in the sort order.
2
       Public Shared Function Compare ( strA As String, strB As String, ignoreCase As
       Boolean ) As Integer
       Compares two specified string objects and returns an integer that indicates their relative
       position in the sort order. However, it ignores case if the Boolean parameter is true.
3
       Public Shared Function Concat ( str0 As String, str1 As String ) As String
       Concatenates two string objects.
4
       Public Shared Function Concat ( str0 As String, str1 As String, str2 As String ) As
       String
       Concatenates three string objects.
5
       Public Shared Function Concat (str0 As String, str1 As String, str2 As String, str3
       As String ) As String
       Concatenates four string objects.
6
       Public Function Contains ( value As String ) As Boolean
       Returns a value indicating whether the specified string object occurs within this string.
7
       Public Shared Function Copy ( str As String ) As String
       Creates a new String object with the same value as the specified string.
8
       pPublic Sub CopyTo ( sourceIndex As                   Integer,   destination    As    Char(),
       destinationIndex As Integer, count As Integer )
       Copies a specified number of characters from a specified position of the string object to a
       specified position in an array of Unicode characters.
                                           79
9
     Public Function EndsWith ( value As String ) As Boolean
     Determines whether the end of the string object matches the specified string.
10
     Public Function Equals ( value As String ) As Boolean
     Determines whether the current string object and the specified string object have the
     same value.
11
     Public Shared Function Equals ( a As String, b As String ) As Boolean
     Determines whether two specified string objects have the same value.
12
     Public Shared Function Format ( format As String, arg0 As Object ) As String
     Replaces one or more format items in a specified string with the string representation of a
     specified object.
13
     Public Function IndexOf ( value As Char ) As Integer
     Returns the zero-based index of the first occurrence of the specified Unicode character in
     the current string.
14
     Public Function IndexOf ( value As String ) As Integer
     Returns the zero-based index of the first occurrence of the specified string in this
     instance.
15
     Public Function IndexOf ( value As Char, startIndex As Integer ) As Integer
     Returns the zero-based index of the first occurrence of the specified Unicode character in
     this string, starting search at the specified character position.
16
     Public Function IndexOf ( value As String, startIndex As Integer ) As Integer
     Returns the zero-based index of the first occurrence of the specified string in this
     instance, starting search at the specified character position.
17
     Public Function IndexOfAny ( anyOf As Char() ) As Integer
     Returns the zero-based index of the first occurrence in this instance of any character in a
     specified array of Unicode characters.
                                       80
18
     Public Function IndexOfAny ( anyOf As Char(), startIndex As Integer ) As Integer
     Returns the zero-based index of the first occurrence in this instance of any character in a
     specified array of Unicode characters, starting search at the specified character position.
19
     Public Function Insert ( startIndex As Integer, value As String ) As String
     Returns a new string in which a specified string is inserted at a specified index position in
     the current string object.
20
     Public Shared Function IsNullOrEmpty ( value As String ) As Boolean
     Indicates whether the specified string is null or an Empty string.
21
     Public Shared Function Join ( separator As String, ParamArray value As String() )
     As String
     Concatenates all the elements of a string array, using the specified separator between
     each element.
22
     Public Shared Function Join ( separator As String, value As String(), startIndex As
     Integer, count As Integer ) As String
     Concatenates the specified elements of a string array, using the specified separator
     between each element.
23
     Public Function LastIndexOf ( value As Char ) As Integer
     Returns the zero-based index position of the last occurrence of the specified Unicode
     character within the current string object.
24
     Public Function LastIndexOf ( value As String ) As Integer
     Returns the zero-based index position of the last occurrence of a specified string within
     the current string object.
25
     Public Function Remove ( startIndex As Integer ) As String
     Removes all the characters in the current instance, beginning at a specified position and
     continuing through the last position, and returns the string.
26
     Public Function Remove ( startIndex As Integer, count As Integer ) As String
                                        81
     Removes the specified number of characters in the current string beginning at a specified
     position and returns the string.
27
     Public Function Replace ( oldChar As Char, newChar As Char ) As String
     Replaces all occurrences of a specified Unicode character in the current string object with
     the specified Unicode character and returns the new string.
28
     Public Function Replace ( oldValue As String, newValue As String ) As String
     Replaces all occurrences of a specified string in the current string object with the specified
     string and returns the new string.
29
     Public Function Split ( ParamArray separator As Char() ) As String()
     Returns a string array that contains the substrings in the current string object, delimited by
     elements of a specified Unicode character array.
30
     Public Function Split ( separator As Char(), count As Integer ) As String()
     Returns a string array that contains the substrings in the current string object, delimited by
     elements of a specified Unicode character array. The int parameter specifies the
     maximum number of substrings to return.
31
     Public Function StartsWith ( value As String ) As Boolean
     Determines whether the beginning of this string instance matches the specified string.
32
     Public Function ToCharArray As Char()
     Returns a Unicode character array with all the characters in the current string object.
33
     Public Function ToCharArray ( startIndex As Integer, length As Integer ) As Char()
     Returns a Unicode character array with all the characters in the current string object,
     starting from the specified index and up to the specified length.
34
     Public Function ToLower As String
     Returns a copy of this string converted to lowercase.
                                        82
35
        Public Function ToUpper As String
        Returns a copy of this string converted to uppercase.
36
        Public Function Trim As String
        Removes all leading and trailing white-space characters from the current String object.
The above list of methods is not exhaustive, please visit MSDN library for the complete
list of methods and String class constructors.
Examples
The following example demonstrates some of the methods mentioned above −
Comparing Strings
                                                                             Live Demo
Module strings
   Sub Main()
      Dim str1, str2 As String
      str1 = "This is test"
      str2 = "This is text"
When the above code is compiled and executed, it produces the following result −
This is test and This is text are not equal.
String Contains String
                                                                             Live Demo
Module strings
   Sub Main()
      Dim str1 As String
      str1 = "This is test"
       If (str1.Contains("test")) Then
          Console.WriteLine("The sequence 'test' was found.")
                                          83
      End If
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
The sequence 'test' was found.
Getting a Substring:
                                                                           Live Demo
Module strings
   Sub Main()
      Dim str As String
      str = "Last night I dreamt of San Pedro"
      Console.WriteLine(str)
When the above code is compiled and executed, it produces the following result −
Last night I dreamt of San Pedro
San Pedro.
Joining Strings
                                                                           Live Demo
Module strings
   Sub Main()
      Dim strarray As String() = {
         "Down the way where the nights are gay",
         "And the sun shines daily on the mountain top",
         "I took a trip on a sailing ship",
         "And when I reached Jamaica",
         "I made a stop"
      }
      Dim str As String = String.Join(vbCrLf, strarray)
      Console.WriteLine(str)
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
Down the way where the nights are gay
And the sun shines daily on the mountain top
                                         84
I took a trip on a sailing ship
And when I reached Jamaica
I made a stop
 Previous Page
Next Page  
Most of the softwares you write need implementing some form of date functions
returning current date and time. Dates are so much part of everyday life that it
becomes easy to work with them without thinking. VB.Net also provides powerful tools
for date arithmetic that makes manipulating dates easy.
The Date data type contains date values, time values, or date and time values. The
default value of Date is 0:00:00 (midnight) on January 1, 0001. The equivalent .NET
data type is System.DateTime.
The DateTime structure represents an instant in time, typically expressed as a date
and time of day
'Declaration
<SerializableAttribute> _
Public Structure DateTime _
   Implements IComparable, IFormattable, IConvertible,
ISerializable,
   IComparable(Of DateTime), IEquatable(Of DateTime)
You can also get the current date and time from the DateAndTime class.
The DateAndTime module contains the procedures and properties used in date and
time operations.
'Declaration
<StandardModuleAttribute> _
Public NotInheritable Class DateAndTime
 Note:
 Both the DateTime structure and the DateAndTime module contain properties
 like Now and Today, so often beginners find it confusing. The DateAndTime class belongs to the
 Microsoft.VisualBasic namespace and the DateTime structure belongs to the System namespace.
 Therefore, using the later would help you in porting your code to another .Net language like C#.
 However, the DateAndTime class/module contains all the legacy date functions available in Visual
 Basic.
                                         85
Properties and Methods of the DateTime Structure
The following table lists      some      of   the     commonly       used properties of
the DateTime Structure −
5 Hour Gets the hour component of the date represented by this instance.
6       Kind                Gets a value that indicates whether the time represented by this instance
                            is based on local time, Coordinated Universal Time (UTC), or neither.
7 Millisecond Gets the milliseconds component of the date represented by this instance.
8 Minute Gets the minute component of the date represented by this instance.
9 Month Gets the month component of the date represented by this instance.
10      Now                 Gets a DateTime object that is set to the current date and time on this
                            computer, expressed as the local time.
11 Second Gets the seconds component of the date represented by this instance.
12 Ticks Gets the number of ticks that represent the date and time of this instance.
                                        86
13      TimeOfDay              Gets the time of day for this instance.
15      UtcNow                 Gets a DateTime object that is set to the current date and time on this
                               computer, expressed as the Coordinated Universal Time (UTC).
16 Year Gets the year component of the date represented by this instance.
1
        Public Function Add (value As TimeSpan) As DateTime
        Returns a new DateTime that adds the value of the specified TimeSpan to the value of
        this instance.
2
        Public Function AddDays ( value As Double) As DateTime
        Returns a new DateTime that adds the specified number of days to the value of this
        instance.
3
        Public Function AddHours (value As Double) As DateTime
        Returns a new DateTime that adds the specified number of hours to the value of this
        instance.
4
        Public Function AddMinutes (value As Double) As DateTime
        Returns a new DateTime that adds the specified number of minutes to the value of this
        instance.
5
        Public Function AddMonths (months As Integer) As DateTime
        Returns a new DateTime that adds the specified number of months to the value of this
        instance.
                                            87
6
           Public Function AddSeconds (value As Double) As DateTime
           Returns a new DateTime that adds the specified number of seconds to the value of this
           instance.
7
           Public Function AddYears (value As Integer ) As DateTime
           Returns a new DateTime that adds the specified number of years to the value of this
           instance.
8
           Public Shared Function Compare (t1 As DateTime,t2 As DateTime) As Integer
           Compares two instances of DateTime and returns an integer that indicates whether the
           first instance is earlier than, the same as, or later than the second instance.
9
           Public Function CompareTo (value As DateTime) As Integer
           Compares the value of this instance to a specified DateTime value and returns an integer
           that indicates whether this instance is earlier than, the same as, or later than the specified
           DateTime value.
10
           Public Function Equals (value As DateTime) As Boolean
           Returns a value indicating whether the value of this instance is equal to the value of the
           specified DateTime instance.
11
           Public Shared Function Equals (t1 As DateTime, t2 As DateTime) As Boolean
           Returns a value indicating whether two DateTime instances have the same date and time
           value.
12
           Public Overrides Function ToString As String
           Converts the value of the current DateTime object to its equivalent string representation.
                                              88
      By assigning the DateTime object a date and time value returned by a property
       or method.
      By parsing the string representation of a date and time value.
      By calling the DateTime structure's implicit default constructor.
The following example demonstrates this −
                                                                           Live Demo
Module Module1
   Sub Main()
      'DateTime constructor: parameters year, month, day, hour,
min, sec
      Dim date1 As New Date(2012, 12, 16, 12, 0, 0)
      'initializes a new DateTime value
      Dim date2 As Date = #12/16/2012 12:00:52 AM#
      'using properties
      Dim date3 As Date = Date.Now
      Dim date4 As Date = Date.UtcNow
      Dim date5 As Date = Date.Today
      Console.WriteLine(date1)
      Console.WriteLine(date2)
      Console.WriteLine(date3)
      Console.WriteLine(date4)
      Console.WriteLine(date5)
      Console.ReadKey()
   End Sub
End Module
When the above code was compiled and executed, it produces the following result −
12/16/2012    12:00:00     PM
12/16/2012    12:00:52     PM
12/12/2012    10:22:50     PM
12/12/2012    12:00:00     PM
Getting the Current Date and Time
The following programs demonstrate how to get the current date and time in VB.Net −
Current Time −
                                                                           Live Demo
Module dateNtime
   Sub Main()
      Console.Write("Current Time: ")
      Console.WriteLine(Now.ToLongTimeString)
      Console.ReadKey()
   End Sub
                                            89
End Module
When the above code is compiled and executed, it produces the following result −
Current Time: 11 :05 :32 AM
Current Date −
                                                                              Live Demo
Module dateNtime
   Sub Main()
      Console.WriteLine("Current Date: ")
      Dim dt As Date = Today
      Console.WriteLine("Today is: {0}", dt)
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
Today is: 12/11/2012 12:00:00 AM
Formatting Date
A Date literal should be enclosed within hash signs (# #), and specified in the format
M/d/yyyy, for example #12/16/2012#. Otherwise, your code may change depending on
the locale in which your application is running.
For example, you specified Date literal of #2/6/2012# for the date February 6, 2012. It
is alright for the locale that uses mm/dd/yyyy format. However, in a locale that uses
dd/mm/yyyy format, your literal would compile to June 2, 2012. If a locale uses another
format say, yyyy/mm/dd, the literal would be invalid and cause a compiler error.
To convert a Date literal to the format of your locale or to a custom format, use
the Format function of String class, specifying either a predefined or user-defined date
format.
The following example demonstrates this.
                                                                              Live Demo
Module dateNtime
   Sub Main()
      Console.WriteLine("India Wins Freedom: ")
      Dim independenceDay As New Date(1947, 8, 15, 0, 0, 0)
      ' Use format specifiers to control the date display.
      Console.WriteLine(" Format 'd:' " &
independenceDay.ToString("d"))
      Console.WriteLine(" Format 'D:' " &
independenceDay.ToString("D"))
      Console.WriteLine(" Format 't:' " &
independenceDay.ToString("t"))
                                           90
      Console.WriteLine(" Format          'T:' " &
independenceDay.ToString("T"))
      Console.WriteLine(" Format          'f:' " &
independenceDay.ToString("f"))
      Console.WriteLine(" Format          'F:' " &
independenceDay.ToString("F"))
      Console.WriteLine(" Format          'g:' " &
independenceDay.ToString("g"))
      Console.WriteLine(" Format          'G:' " &
independenceDay.ToString("G"))
      Console.WriteLine(" Format          'M:' " &
independenceDay.ToString("M"))
      Console.WriteLine(" Format          'R:' " &
independenceDay.ToString("R"))
      Console.WriteLine(" Format          'y:' " &
independenceDay.ToString("y"))
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
India Wins Freedom:
Format 'd:' 8/15/1947
Format 'D:' Friday, August 15, 1947
Format 't:' 12:00 AM
Format 'T:' 12:00:00 AM
Format 'f:' Friday, August 15, 1947 12:00 AM
Format 'F:' Friday, August 15, 1947 12:00:00 AM
Format 'g:' 8/15/1947 12:00 AM
Format 'G:' 8/15/1947 12:00:00 AM
Format 'M:' 8/15/1947 August 15
Format 'R:' Fri, 15 August 1947 00:00:00 GMT
Format 'y:' August, 1947
Predefined Date/Time Formats
The following table identifies the predefined date and time format names. These may
be used by name as the style argument for the Format function −
Format Description
General Date, or G Displays a date and/or time. For example, 1/12/2012 07:07:30 AM.
Long Date,Medium Date, or      Displays a date according to your current culture's long date format. For
D                              example, Sunday, December 16, 2012.
                                          91
Short Date, or d               Displays a date using your current culture's short date format. For
                               example, 12/12/2012.
Long Time,Medium Time, orT     Displays a time using your current culture's long time format; typically
                               includes hours, minutes, seconds. For example, 01:07:30 AM.
Short Time or t                Displays a time using your current culture's short time format. For
                               example, 11:07 AM.
f                              Displays the long date and short time according to your current culture's
                               format. For example, Sunday, December 16, 2012 12:15 AM.
F                              Displays the long date and long time according to your current culture's
                               format. For example, Sunday, December 16, 2012 12:15:31 AM.
g                              Displays the short date and short time according to your current culture's
                               format. For example, 12/16/2012 12:15 AM.
M, m Displays the month and the day of a date. For example, December 16.
s                              Formats the date and time as a sortable index. For example, 2012-12-
                               16T12:07:31.
u                              Formats the date and time as a GMT sortable index. For example, 2012-
                               12-16 12:15:31Z.
U                              Formats the date and time with the long date and long time as GMT. For
                               example, Sunday, December 16, 2012 6:07:31 PM.
Y, y Formats the date as the year and month. For example, December, 2012.
                                           92
Properties and Methods of the DateAndTime Class
The following table lists        some     of    the    commonly     used properties of
the DateAndTime Class −
1
        Date
        Returns or sets a String value representing the current date according to your system.
2
        Now
        Returns a Date value containing the current date and time according to your system.
3
        TimeOfDay
        Returns or sets a Date value containing the current time of day according to your system.
4
        Timer
        Returns a Double value representing the number of seconds elapsed since midnight.
5
        TimeString
        Returns or sets a String value representing the current time of day according to your
        system.
6
        Today
        Gets the current date.
1
        Public Shared Function DateAdd (Interval As DateInterval, Number As Double,
        DateValue As DateTime) As DateTime
                                          93
    Returns a Date value containing a date and time value to which a specified time interval
    has been added.
2
    Public Shared Function DateAdd (Interval As String,Number As Double,DateValue
    As Object ) As DateTime
    Returns a Date value containing a date and time value to which a specified time interval
    has been added.
3
    Public Shared Function DateDiff (Interval As DateInterval, Date1 As DateTime,
    Date2 As DateTime, DayOfWeek As FirstDayOfWeek, WeekOfYear As
    FirstWeekOfYear ) As Long
    Returns a Long value specifying the number of time intervals between two Date values.
4
    Public Shared Function DatePart (Interval As DateInterval, DateValue As DateTime,
    FirstDayOfWeekValue      As    FirstDayOfWeek,       FirstWeekOfYearValue      As
    FirstWeekOfYear ) As Integer
    Returns an Integer value containing the specified component of a given Date value.
5
    Public Shared Function Day (DateValue As DateTime) As Integer
    Returns an Integer value from 1 through 31 representing the day of the month.
6
    Public Shared Function Hour (TimeValue As DateTime) As Integer
    Returns an Integer value from 0 through 23 representing the hour of the day.
7
    Public Shared Function Minute (TimeValue As DateTime) As Integer
    Returns an Integer value from 0 through 59 representing the minute of the hour.
8
    Public Shared Function Month (DateValue As DateTime) As Integer
    Returns an Integer value from 1 through 12 representing the month of the year.
9
    Public Shared Function MonthName (Month As Integer, Abbreviate As Boolean) As
    String
    Returns a String value containing the name of the specified month.
                                     94
10
        Public Shared Function Second (TimeValue As DateTime) As Integer
        Returns an Integer value from 0 through 59 representing the second of the minute.
11
        Public Overridable Function ToString As String
        Returns a string that represents the current object.
12
        Public Shared Function Weekday (DateValue As DateTime, DayOfWeek As
        FirstDayOfWeek) As Integer
        Returns an Integer value containing a number representing the day of the week.
13
        Public Shared Function WeekdayName (Weekday As Integer, Abbreviate As
        Boolean, FirstDayOfWeekValue As FirstDayOfWeek) As String
        Returns a String value containing the name of the specified weekday.
14
        Public Shared Function Year (DateValue As DateTime) As Integer
        Returns an Integer value from 1 through 9999 representing the year.
The above list is not exhaustive. For complete list of properties and methods of the
DateAndTime class, please consult Microsoft Documentation.
The following program demonstrates some of these and methods −
                                                                              Live Demo
Module Module1
   Sub Main()
      Dim birthday As Date
      Dim bday As Integer
      Dim month As Integer
      Dim monthname As String
      ' Assign a date using standard short format.
      birthday = #7/27/1998#
      bday = Microsoft.VisualBasic.DateAndTime.Day(birthday)
      month = Microsoft.VisualBasic.DateAndTime.Month(birthday)
      monthname =
Microsoft.VisualBasic.DateAndTime.MonthName(month)
       Console.WriteLine(birthday)
       Console.WriteLine(bday)
       Console.WriteLine(month)
       Console.WriteLine(monthname)
                                          95
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
7/27/1998 12:00:00 AM
27
7
July
VB.Net - Arrays
 Previous Page
Next Page  
                                             96
                                                                           Live Demo
Module arrayApl
   Sub Main()
      Dim n(10) As Integer ' n is an array of 11 integers '
      Dim i, j As Integer
      ' initialize elements of array n '
         For i = 0 To 10
             n(i) = i + 100 ' set element at location i to i + 100
         Next i
         ' output each array element's value '
      For j = 0 To 10
          Console.WriteLine("Element({0}) = {1}", j, n(j))
      Next j
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
Element(0) = 100
Element(1) = 101
Element(2) = 102
Element(3) = 103
Element(4) = 104
Element(5) = 105
Element(6) = 106
Element(7) = 107
Element(8) = 108
Element(9) = 109
Element(10) = 110
Dynamic Arrays
Dynamic arrays are arrays that can be dimensioned and re-dimensioned as par the
need of the program. You can declare a dynamic array using the ReDim statement.
Syntax for ReDim statement −
ReDim [Preserve] arrayname(subscripts)
Where,
      The Preserve keyword helps to preserve the data in an existing array, when you
       resize it.
      arrayname is the name of the array to re-dimension.
      subscripts specifies the new dimension.
Module arrayApl
                                          97
     Sub Main()
        Dim marks() As Integer
        ReDim marks(2)
        marks(0) = 85
        marks(1) = 75
        marks(2) = 90
      For i = 0 To 10
         Console.WriteLine(i & vbTab & marks(i))
      Next i
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
0       85
1       75
2       90
3       80
4       76
5       92
6       99
7       79
8       75
9       0
10      0
Multi-Dimensional Arrays
VB.Net allows multidimensional arrays. Multidimensional arrays are also called
rectangular arrays.
You can declare a 2-dimensional array of strings as −
Dim twoDStringArray(10, 20) As String
or, a 3-dimensional array of Integer variables −
Dim threeDIntArray(10, 10, 10) As Integer
The following program demonstrates creating and using a 2-dimensional array −
                                                                           Live Demo
                                           98
Module arrayApl
   Sub Main()
      ' an array with 5 rows and 2 columns
      Dim a(,) As Integer = {{0, 0}, {1, 2}, {2, 4}, {3, 6}, {4,
8}}
      Dim i, j As Integer
      ' output each array element's value '
      For i = 0 To 4
          For j = 0 To 1
              Console.WriteLine("a[{0},{1}] = {2}", i, j, a(i, j))
          Next j
      Next i
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
a[0,0]:   0
a[0,1]:   0
a[1,0]:   1
a[1,1]:   2
a[2,0]:   2
a[2,1]:   4
a[3,0]:   3
a[3,1]:   6
a[4,0]:   4
a[4,1]:   8
Jagged Array
A Jagged array is an array of arrays. The following code shows declaring a jagged
array named scores of Integers −
Dim scores As Integer()() = New Integer(5)(){}
The following example illustrates using a jagged array −
                                                                           Live Demo
Module arrayApl
   Sub Main()
      'a jagged array of 5        array of integers
      Dim a As Integer()()        = New Integer(4)() {}
      a(0) = New Integer()        {0, 0}
      a(1) = New Integer()        {1, 2}
      a(2) = New Integer()        {2, 4}
      a(3) = New Integer()        {3, 6}
      a(4) = New Integer()        {4, 8}
      Dim i, j As Integer
                                          99
        ' output each array element's value
      For i = 0 To 4
         For j = 0 To 1
             Console.WriteLine("a[{0},{1}] = {2}", i, j, a(i)(j))
         Next j
      Next i
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
a[0][0]:   0
a[0][1]:   0
a[1][0]:   1
a[1][1]:   2
a[2][0]:   2
a[2][1]:   4
a[3][0]:   3
a[3][1]:   6
a[4][0]:   4
a[4][1]:   8
The Array Class
The Array class is the base class for all the arrays in VB.Net. It is defined in the System
namespace. The Array class provides various properties and methods to work with
arrays.
Properties of the Array Class
The following table provides some of the most commonly used properties of
the Array class −
 1
         IsFixedSize
         Gets a value indicating whether the Array has a fixed size.
 2
         IsReadOnly
         Gets a value indicating whether the Array is read-only.
 3
         Length
                                           100
        Gets a 32-bit integer that represents the total number of elements in all the dimensions of
        the Array.
 4
        LongLength
        Gets a 64-bit integer that represents the total number of elements in all the dimensions of
        the Array.
 5
        Rank
        Gets the rank (number of dimensions) of the Array.
 1
        Public Shared Sub Clear (array As Array, index As Integer, length As Integer)
        Sets a range of elements in the Array to zero, to false, or to null, depending on the
        element type.
 2
        Public Shared Sub Copy (sourceArray As Array, destinationArray As Array, length
        As Integer)
        Copies a range of elements from an Array starting at the first element and pastes them
        into another Array starting at the first element. The length is specified as a 32-bit integer.
 3
        Public Sub CopyTo (array As Array, index As Integer)
        Copies all the elements of the current one-dimensional Array to the specified one-
        dimensional Array starting at the specified destination Array index. The index is specified
        as a 32-bit integer.
 4
        Public Function GetLength (dimension As Integer) As Integer
        Gets a 32-bit integer that represents the number of elements in the specified dimension of
        the Array.
                                          101
5
     Public Function GetLongLength (dimension As Integer) As Long
     Gets a 64-bit integer that represents the number of elements in the specified dimension of
     the Array.
6
     Public Function GetLowerBound (dimension As Integer) As Integer
     Gets the lower bound of the specified dimension in the Array.
7
     Public Function GetType As Type
     Gets the Type of the current instance (Inherited from Object).
8
     Public Function GetUpperBound (dimension As Integer) As Integer
     Gets the upper bound of the specified dimension in the Array.
9
     Public Function GetValue (index As Integer) As Object
     Gets the value at the specified position in the one-dimensional Array. The index is
     specified as a 32-bit integer.
10
     Public Shared Function IndexOf (array As Array,value As Object) As Integer
     Searches for the specified object and returns the index of the first occurrence within the
     entire one-dimensional Array.
11
     Public Shared Sub Reverse (array As Array)
     Reverses the sequence of the elements in the entire one-dimensional Array.
12
     Public Sub SetValue (value As Object, index As Integer)
     Sets a value to the element at the specified position in the one-dimensional Array. The
     index is specified as a 32-bit integer.
13
     Public Shared Sub Sort (array As Array)
     Sorts the elements in an entire one-dimensional Array using the IComparable
     implementation of each element of the Array.
                                      102
14
          Public Overridable Function ToString As String
          Returns a string that represents the current object (Inherited from Object).
For complete list of Array class properties and methods, please consult Microsoft
documentation.
Example
The following program demonstrates use of some of the methods of the Array class:
                                                                                Live Demo
Module arrayApl
   Sub Main()
      Dim list As Integer() = {34, 72, 13, 44, 25, 30, 10}
      Dim temp As Integer() = list
      Dim i As Integer
      Console.Write("Original Array: ")
When the above code is compiled and executed, it produces the following result −
Original Array: 34 72 13 44 25 30 10
Reversed Array: 10 30 25 44 13 72 34
Sorted Array: 10 13 25 30 34 44 72
                                            103
                          VB.Net - Collections
Collection classes are specialized classes for data storage and retrieval. These classes
provide support for stacks, queues, lists, and hash tables. Most collection classes
implement the same interfaces.
Collection classes serve various purposes, such as allocating memory dynamically to
elements and accessing a list of items on the basis of an index, etc. These classes
create collections of objects of the Object class, which is the base class for all data
types in VB.Net.
                                          104
2                                                                  sort items in
        Count
                                                                   the list.
        Gets the number of elements actually contained in the ArrayList.
3
        IsFixedSize
        Gets a value indicating whether the ArrayList has a fixed size.
4
        IsReadOnly
        Gets a value indicating whether the ArrayList is read-only.
5
        Item
        Gets or sets the element at the specified index.
1
        Public Overridable Function Add (value As Object) As Integer
        Adds an object to the end of the ArrayList.
2
        Public Overridable Sub AddRange (c As ICollection)
        Adds the elements of an ICollection to the end of the ArrayList.
3
        Public Overridable Sub Clear
        Removes all elements from the ArrayList.
4
        Public Overridable Function Contains (item As Object) As Boolean
        Determines whether an element is in the ArrayList.
5
        Public Overridable Function GetRange (index As Integer, count As Integer ) As
        ArrayList
                                        105
     Returns an ArrayList, which represents a subset of the elements in the source ArrayList.
6
     Public Overridable Function IndexOf (value As Object) As Integer
     Returns the zero-based index of the first occurrence of a value in the ArrayList or in a
     portion of it.
7
     Public Overridable Sub Insert (index As Integer, value As Object)
     Inserts an element into the ArrayList at the specified index.
8
     Public Overridable Sub InsertRange (index As Integer, c As ICollection)
     Inserts the elements of a collection into the ArrayList at the specified index.
9
     Public Overridable Sub Remove (obj As Object )
     Removes the first occurrence of a specific object from the ArrayList.
10
     Public Overridable Sub RemoveAt (index As Integer)
     Removes the element at the specified index of the ArrayList.
11
     Public Overridable Sub RemoveRange (index As Integer, count As Integer)
     Removes a range of elements from the ArrayList.
12
     Public Overridable Sub Reverse
     Reverses the order of the elements in the ArrayList.
13
     Public Overridable Sub SetRange (index As Integer, c As ICollection )
     Copies the elements of a collection over a range of elements in the ArrayList.
14
     Public Overridable Sub Sort
     Sorts the elements in the ArrayList.
15
     Public Overridable Sub TrimToSize
                                      106
        Sets the capacity to the actual number of elements in the ArrayList.
Example
The following example demonstrates the concept −
   Sub Main()
      Dim al As ArrayList = New ArrayList()
      Dim i As Integer
      Console.WriteLine("Adding some numbers:")
      al.Add(45)
      al.Add(78)
      al.Add(33)
      al.Add(56)
      al.Add(12)
      al.Add(23)
      al.Add(9)
      Console.WriteLine("Capacity: {0} ",
al.Capacity)
      Console.WriteLine("Count: {0}", al.Count)
      Console.Write("Content: ")
      For Each i In al
         Console.Write("{0} ", i)
      Next i
      Console.WriteLine()
      Console.Write("Sorted Content: ")
      al.Sort()
      For Each i In al
         Console.Write("{0} ", i)
      Next i
      Console.WriteLine()
      Console.ReadKey()
   End Sub
End Module
                                       107
                                                                       a key to
The Hashtable class represents a collection of key-and-value           access      the
pairs that are organized based on the hash code of the key. It         elements in the
uses the key to access the elements in the collection.                 collection.
2
         IsFixedSize
         Gets a value indicating whether the Hashtable has a fixed size.
3
         IsReadOnly
         Gets a value indicating whether the Hashtable is read-only.
4
         Item
         Gets or sets the value associated with the specified key.
5
         Keys
         Gets an ICollection containing the keys in the Hashtable.
6
         Values
         Gets an ICollection containing the values in the Hashtable.
                                         108
The following table lists some of the commonly used methods of
the Hashtable class −
1
          Public Overridable Sub Add (key As Object, value As Object )
          Adds an element with the specified key and value into the Hashtable.
2
          Public Overridable Sub Clear
          Removes all elements from the Hashtable.
3
          Public Overridable Function ContainsKey (key As Object) As Boolean
          Determines whether the Hashtable contains a specific key.
4
          Public Overridable Function ContainsValue (value As Object) As Boolean
          Determines whether the Hashtable contains a specific value.
5
          Public Overridable Sub Remove (key As Object)
          Removes the element with the specified key from the Hashtable.
Example
The following example demonstrates the concept −
Module collections
   Sub Main()
      Dim ht As Hashtable = New Hashtable()
      Dim k As String
      ht.Add("001", "Zara Ali")
      ht.Add("002", "Abida Rehman")
      ht.Add("003", "Joe Holzner")
      ht.Add("004", "Mausam Benazir Nur")
      ht.Add("005", "M. Amlan")
      ht.Add("006", "M. Arif")
      ht.Add("007", "Ritesh Saikia")
                                         109
already in the list")
      Else
           ht.Add("008", "Nuha Ali")
      End If
      ' Get a collection of the keys.
      Dim key As ICollection = ht.Keys
                                          110
1                                                                      Hashtable. The
        Capacity
                                                                       collection   of
        Gets or sets the capacity of the SortedList.                   items is always
                                                                       sorted by the
2                                                                      key value.
        Count
        Gets the number of elements contained in the SortedList.
3
        IsFixedSize
        Gets a value indicating whether the SortedList has a fixed size.
4
        IsReadOnly
        Gets a value indicating whether the SortedList is read-only.
5
        Item
        Gets and sets the value associated with a specific key in the SortedList.
6
        Keys
        Gets the keys in the SortedList.
7
        Values
        Gets the values in the SortedList.
1
        Public Overridable Sub Add (key As Object, value As Object)
        Adds an element with the specified key and value into the SortedList.
2
        Public Overridable Sub Clear
        Removes all elements from the SortedList.
                                           111
3
     Public Overridable Function ContainsKey (key As Object) As Boolean
     Determines whether the SortedList contains a specific key.
4
     Public Overridable Function ContainsValue (value As Object) As Boolean
     Determines whether the SortedList contains a specific value.
5
     Public Overridable Function GetByIndex (index As Integer) As Object
     Gets the value at the specified index of the SortedList.
6
     Public Overridable Function GetKey (index As Integer) As Object
     Gets the key at the specified index of the SortedList.
7
     Public Overridable Function GetKeyList As IList
     Gets the keys in the SortedList.
8
     Public Overridable Function GetValueList As IList
     Gets the values in the SortedList.
9
     Public Overridable Function IndexOfKey (key As Object) As Integer
     Returns the zero-based index of the specified key in the SortedList.
10
     Public Overridable Function IndexOfValue (value As Object ) As Integer
     Returns the zero-based index of the first occurrence of the specified value in the
     SortedList.
11
     Public Overridable Sub Remove (key As Object)
     Removes the element with the specified key from the SortedList.
12
     Public Overridable Sub RemoveAt (index As Integer)
     Removes the element at the specified index of SortedList.
                                        112
13
         Public Overridable Sub TrimToSize
         Sets the capacity to the actual number of elements in the SortedList.
Example
The following example demonstrates the concept −
Module collections
   Sub Main()
      Dim sl As SortedList = New SortedList()
      sl.Add("001", "Zara Ali")
      sl.Add("002", "Abida Rehman")
      sl.Add("003", "Joe Holzner")
      sl.Add("004", "Mausam Benazir Nur")
      sl.Add("005", "M. Amlan")
      sl.Add("006", "M. Arif")
      sl.Add("007", "Ritesh Saikia")
                                        113
                                                                            out collection
                                                                            of object.
 1
         Count
         Gets the number of elements contained in the Stack.
 1
          Public Overridable Sub Clear
          Removes all elements from the Stack.
 2
          Public Overridable Function Contains (obj As Object) As Boolean
          Determines whether an element is in the Stack.
 3
          Public Overridable Function Peek As Object
          Returns the object at the top of the Stack without removing it.
 4
          Public Overridable Function Pop As Object
                                            114
        Removes and returns the object at the top of the Stack.
5
        Public Overridable Sub Push (obj As Object)
        Inserts an object at the top of the Stack.
6
        Public Overridable Function ToArray As Object()
        Copies the Stack to a new array.
Example
The following example demonstrates use of Stack −
Module collections
   Sub Main()
      Dim st As Stack = New Stack()
      st.Push("A")
      st.Push("M")
      st.Push("G")
      st.Push("W")
      Console.WriteLine("Current stack: ")
      Dim c As Char
      For Each c In st
         Console.Write(c + " ")
      Next c
      Console.WriteLine()
      st.Push("V")
      st.Push("H")
      Console.WriteLine("The next poppable value in
stack: {0}", st.Peek())
      Console.WriteLine("Current stack: ")
      For Each c In st
         Console.Write(c + " ")
      Next c
      Console.WriteLine()
      Console.WriteLine("Removing values ")
      st.Pop()
      st.Pop()
      st.Pop()
      Console.WriteLine("Current stack: ")
      For Each c In st
         Console.Write(c + " ")
      Next c
                                         115
      Console.ReadKey()
   End Sub
End Module
 1
         Count
         Gets the number of elements contained in the Queue.
                                            116
 Sr.No                                    Method Name & Purpose
   .
1
          Public Overridable Sub Clear
          Removes all elements from the Queue.
2
          Public Overridable Function Contains (obj As Object) As Boolean
          Determines whether an element is in the Queue.
3
          Public Overridable Function Dequeue As Object
          Removes and returns the object at the beginning of the Queue.
4
          Public Overridable Sub Enqueue (obj As Object)
          Adds an object to the end of the Queue.
5
          Public Overridable Function ToArray As Object()
          Copies the Queue to a new array.
6
          Public Overridable Sub TrimToSize
          Sets the capacity to the actual number of elements in the Queue.
Example
The following example demonstrates use of Queue −
Module collections
   Sub Main()
      Dim q As Queue = New Queue()
      q.Enqueue("A")
      q.Enqueue("M")
      q.Enqueue("G")
      q.Enqueue("W")
      Console.WriteLine("Current queue: ")
      Dim c As Char
         For Each c In q
            Console.Write(c + " ")
         Next c
                                         117
       Console.WriteLine()
       q.Enqueue("V")
       q.Enqueue("H")
       Console.WriteLine("Current queue: ")
       For Each c In q
          Console.Write(c + " ")
       Next c
       Console.WriteLine()
       Console.WriteLine("Removing some values ")
       Dim ch As Char
       ch = q.Dequeue()
       Console.WriteLine("The removed value: {0}",
ch)
       ch = q.Dequeue()
       Console.WriteLine("The removed value: {0}",
ch)
      Console.ReadKey()
   End Sub
End Module
                                       118
The following table lists some of the commonly used properties of            collection    by
the BitArray class −                                                         using
                                                                             an integer
Sr.No                                        Property & Description          index, which
  .                                                                          starts     from
                                                                             zero.
1
         Count
         Gets the number of elements contained in the BitArray.
2
         IsReadOnly
         Gets a value indicating whether the BitArray is read-only.
3
         Item
         Gets or sets the value of the bit at a specific position in the BitArray.
4
         Length
         Gets or sets the number of elements in the BitArray.
1
         Public Function And (value As BitArray) As BitArray
         Performs the bitwise AND operation on the elements in the current BitArray against the
         corresponding elements in the specified BitArray.
2
         Public Function Get (index As Integer) As Boolean
         Gets the value of the bit at a specific position in the BitArray.
3
         Public Function Not As BitArray
         Inverts all the bit values in the current BitArray, so that elements set to true are changed
         to false, and elements set to false are changed to true.
                                           119
4
         Public Function Or (value As BitArray) As BitArray
         Performs the bitwise OR operation on the elements in the current BitArray against the
         corresponding elements in the specified BitArray.
5
         Public Sub Set (index As Integer, value As Boolean )
         Sets the bit at a specific position in the BitArray to the specified value.
6
         Public Sub SetAll (value As Boolean)
         Sets all bits in the BitArray to the specified value.
7
         Public Function Xor (value As BitArray) As BitArray
         Performs the bitwise eXclusive OR operation on the elements in the current BitArray
         against the corresponding elements in the specified BitArray.
Example
The following example demonstrates the use of BitArray class −
Module collections
   Sub Main()
      'creating two bit arrays of size 8
       Dim ba1 As BitArray = New BitArray(8)
       Dim ba2 As BitArray = New BitArray(8)
       Dim a() As Byte = {60}
       Dim b() As Byte = {13}
       'storing the values 60, and 13 into the bit
arrays
       ba1 = New BitArray(a)
       ba2 = New BitArray(b)
      'content of ba1
       Console.WriteLine("Bit array ba1: 60")
       Dim i As Integer
       For i = 0 To ba1.Count
          Console.Write("{0 } ", ba1(i))
       Next i
       Console.WriteLine()
       'content of ba2
       Console.WriteLine("Bit array ba2: 13")
       For i = 0 To ba2.Count
          Console.Write("{0 } ", ba2(i))
                                           120
       Next i
       Console.WriteLine()
       Dim ba3 As BitArray = New BitArray(8)
       ba3 = ba1.And(ba2)
       'content of ba3
       Console.WriteLine("Bit array ba3 after AND
 operation: 12")
       For i = 0 To ba3.Count
          Console.Write("{0 } ", ba3(i))
       Next i
       Console.WriteLine()
       ba3 = ba1.Or(ba2)
       'content of ba3
       Console.WriteLine("Bit array ba3 after OR
 operation: 61")
       For i = 0 To ba3.Count
          Console.Write("{0 } ", ba3(i))
       Next i
       Console.WriteLine()
       Console.ReadKey()
    End Sub
 End Module
VB.Net - Functions
 Previous Page
Next Page  
                                      121
A procedure is a group of statements that together perform a task when called. After
the procedure is executed, the control returns to the statement calling the procedure.
VB.Net has two types of procedures −
      Functions
      Sub procedures or Subs
Functions return a value, whereas Subs do not return a value.
Defining a Function
The Function statement is used to declare the name, parameter and the body of a
function. The syntax for the Function statement is −
[Modifiers] Function FunctionName [(ParameterList)] As ReturnType
   [Statements]
End Function
Where,
      Modifiers − specify the access level of the function; possible values are: Public,
       Private, Protected, Friend, Protected Friend and information regarding
       overloading, overriding, sharing, and shadowing.
      FunctionName − indicates the name of the function
      ParameterList − specifies the list of the parameters
      ReturnType − specifies the data type of the variable the function returns
Example
Following code snippet shows a function FindMax that takes two integer values and
returns the larger of the two.
Function FindMax(ByVal num1 As Integer, ByVal num2 As Integer) As
Integer
   ' local variable declaration */
   Dim result As Integer
                                           122
      By assigning the value to the function name
The following example demonstrates using the FindMax function −
                                                                           Live Demo
Module myfunctions
   Function FindMax(ByVal num1 As Integer, ByVal num2 As Integer)
As Integer
      ' local variable declaration */
      Dim result As Integer
      res = FindMax(a, b)
      Console.WriteLine("Max value is : {0}", res)
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
Max value is : 200
Recursive Function
A function can call itself. This is known as recursion. Following is an example that
calculates factorial for a given number using a recursive function −
                                                                           Live Demo
Module myfunctions
   Function factorial(ByVal num As Integer) As Integer
      ' local variable declaration */
      Dim result As Integer
        If (num =   1) Then
           Return   1
        Else
           result   = factorial(num - 1) * num
           Return   result
                                          123
      End If
   End Function
   Sub Main()
      'calling the factorial method
      Console.WriteLine("Factorial of 6 is : {0}", factorial(6))
      Console.WriteLine("Factorial of 7 is : {0}", factorial(7))
      Console.WriteLine("Factorial of 8 is : {0}", factorial(8))
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
Factorial of 6 is: 720
Factorial of 7 is: 5040
Factorial of 8 is: 40320
Param Arrays
At times, while declaring a function or sub procedure, you are not sure of the number of
arguments passed as a parameter. VB.Net param arrays (or parameter arrays) come
into help at these times.
The following example demonstrates this −
                                                                              Live Demo
Module myparamfunc
   Function AddElements(ParamArray arr As Integer()) As Integer
      Dim sum As Integer = 0
      Dim i As Integer = 0
When the above code is compiled and executed, it produces the following result −
The sum is: 2938
                                          124
Passing Arrays as Function Arguments
You can pass an array as a function argument in VB.Net. The following example
demonstrates this −
                                                                              Live Demo
Module arrayParameter
   Function getAverage(ByVal arr As Integer(), ByVal size As
Integer) As Double
      'local variables
      Dim i As Integer
      Dim avg As Double
      Dim sum As Integer = 0
      For i = 0 To size - 1
         sum += arr(i)
      Next i
      avg = sum / size
      Return avg
   End Function
   Sub Main()
      ' an int array with 5 elements '
      Dim balance As Integer() = {1000, 2, 3, 17, 50}
      Dim avg As Double
      'pass pointer to the array as an argument
      avg = getAverage(balance, 5)
      ' output the returned value '
      Console.WriteLine("Average value is: {0} ", avg)
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
Average value is: 214.4
 Previous Page
Next Page  
As we mentioned in the previous chapter, Sub procedures are procedures that do not
return any value. We have been using the Sub procedure Main in all our examples. We
have been writing console applications so far in these tutorials. When these
applications start, the control goes to the Main Sub procedure, and it in turn, runs any
other statements constituting the body of the program.
                                          125
Defining Sub Procedures
The Sub statement is used to declare the name, parameter and the body of a sub
procedure. The syntax for the Sub statement is −
[Modifiers] Sub SubName [(ParameterList)]
   [Statements]
End Sub
Where,
      Modifiers − specify the access level of the procedure; possible values are -
       Public, Private, Protected, Friend, Protected Friend and information regarding
       overloading, overriding, sharing, and shadowing.
      SubName − indicates the name of the Sub
      ParameterList − specifies the list of the parameters
Example
The following example demonstrates a Sub procedure CalculatePay that takes two
parameters hours and wages and displays the total pay of an employee −
                                                                           Live Demo
Module mysub
   Sub CalculatePay(ByRef hours As Double, ByRef wage As Decimal)
      'local variable declaration
      Dim pay As Double
      pay = hours * wage
      Console.WriteLine("Total Pay: {0:C}", pay)
   End Sub
   Sub Main()
      'calling the CalculatePay Sub Procedure
      CalculatePay(25, 10)
      CalculatePay(40, 20)
      CalculatePay(30, 27.5)
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
Total Pay: $250.00
Total Pay: $800.00
Total Pay: $825.00
Passing Parameters by Value
This is the default mechanism for passing parameters to a method. In this mechanism,
when a method is called, a new storage location is created for each value parameter.
                                          126
The values of the actual parameters are copied into them. So, the changes made to
the parameter inside the method have no effect on the argument.
In VB.Net, you declare the reference parameters using the ByVal keyword. The
following example demonstrates the concept −
                                                                           Live Demo
Module paramByval
   Sub swap(ByVal x As Integer, ByVal y As Integer)
      Dim temp As Integer
      temp = x ' save the value of x
      x = y    ' put y into x
      y = temp 'put temp into y
   End Sub
   Sub Main()
      ' local variable definition
      Dim a As Integer = 100
      Dim b As Integer = 200
      Console.WriteLine("Before swap, value of a : {0}", a)
      Console.WriteLine("Before swap, value of b : {0}", b)
      ' calling a function to swap the values '
      swap(a, b)
      Console.WriteLine("After swap, value of a : {0}", a)
      Console.WriteLine("After swap, value of b : {0}", b)
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
Before swap, value of a :100
Before swap, value of b :200
After swap, value of a :100
After swap, value of b :200
It shows that there is no change in the values though they had been changed inside
the function.
                                         127
Module paramByref
   Sub swap(ByRef x As Integer, ByRef y As Integer)
      Dim temp As Integer
      temp = x ' save the value of x
      x = y    ' put y into x
      y = temp 'put temp into y
   End Sub
   Sub Main()
      ' local variable definition
      Dim a As Integer = 100
      Dim b As Integer = 200
      Console.WriteLine("Before swap, value of a : {0}", a)
      Console.WriteLine("Before swap, value of b : {0}", b)
      ' calling a function to swap the values '
      swap(a, b)
      Console.WriteLine("After swap, value of a : {0}", a)
      Console.WriteLine("After swap, value of b : {0}", b)
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
Before swap, value of a : 100
Before swap, value of b : 200
After swap, value of a : 200
After swap, value of b : 100
 Previous Page
Next Page  
When you define a class, you define a blueprint for a data type. This doesn't actually
define any data, but it does define what the class name means, that is, what an object
of the class will consist of and what operations can be performed on such an object.
Objects are instances of a class. The methods and variables that constitute a class are
called members of the class.
Class Definition
A class definition starts with the keyword Class followed by the class name; and the
class body, ended by the End Class statement. Following is the general form of a class
definition −
                                          128
[ <attributelist> ] [ accessmodifier ] [ Shadows ] [ MustInherit |
NotInheritable ] [ Partial ] _
Class name [ ( Of typelist ) ]
   [ Inherits classname ]
   [ Implements interfacenames ]
   [ statements ]
End Class
Where,
      attributelist is a list of attributes that apply to the class. Optional.
      accessmodifier defines the access levels of the class, it has values as - Public,
       Protected, Friend, Protected Friend and Private. Optional.
      Shadows indicate that the variable re-declares and hides an identically named
       element, or set of overloaded elements, in a base class. Optional.
      MustInherit specifies that the class can be used only as a base class and that
       you cannot create an object directly from it, i.e., an abstract class. Optional.
      NotInheritable specifies that the class cannot be used as a base class.
      Partial indicates a partial definition of the class.
      Inherits specifies the base class it is inheriting from.
      Implements specifies the interfaces the class is inheriting from.
The following example demonstrates a Box class, with three data members, length,
breadth and height −
                                                                                  Live Demo
Module mybox
   Class Box
      Public length As Double   ' Length of a box
      Public breadth As Double ' Breadth of a box
      Public height As Double   ' Height of a box
   End Class
   Sub Main()
      Dim Box1 As Box = New Box()        ' Declare Box1 of type Box
      Dim Box2 As Box = New Box()        ' Declare Box2 of type Box
      Dim volume As Double = 0.0         ' Store the volume of a
box here
                                              129
       Box2.length = 12.0
       Box2.breadth = 13.0
       'volume of box 1
       volume = Box1.height * Box1.length * Box1.breadth
       Console.WriteLine("Volume of Box1 : {0}", volume)
      'volume of box 2
      volume = Box2.height * Box2.length * Box2.breadth
      Console.WriteLine("Volume of Box2 : {0}", volume)
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
Volume of Box1 : 210
Volume of Box2 : 1560
Member Functions and Encapsulation
A member function of a class is a function that has its definition or its prototype within
the class definition like any other variable. It operates on any object of the class of
which it is a member and has access to all the members of a class for that object.
Member variables are attributes of an object (from design perspective) and they are
kept private to implement encapsulation. These variables can only be accessed using
the public member functions.
Let us put above concepts to set and get the value of different class members in a
class −
                                                                                Live Demo
Module mybox
   Class Box
      Public length As Double              ' Length of a box
      Public breadth As Double             ' Breadth of a box
      Public height As Double              ' Height of a box
      Public Sub setLength(ByVal           len As Double)
         length = len
      End Sub
                                           130
      Public Function getVolume() As Double
         Return length * breadth * height
      End Function
   End Class
   Sub Main()
      Dim Box1 As Box = New Box()         ' Declare Box1 of type Box
      Dim Box2 As Box = New Box()         ' Declare Box2 of type Box
      Dim volume As Double = 0.0          ' Store the volume of a
box here
       'box 2 specification
       Box2.setLength(12.0)
       Box2.setBreadth(13.0)
       Box2.setHeight(10.0)
      'volume of box 2
      volume = Box2.getVolume()
      Console.WriteLine("Volume of Box2 : {0}", volume)
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
Volume of Box1 : 210
Volume of Box2 : 1560
Constructors and Destructors
A class constructor is a special member Sub of a class that is executed whenever we
create new objects of that class. A constructor has the name New and it does not have
any return type.
Following program explains the concept of constructor −
                                                                           Live Demo
Class Line
   Private length As Double    ' Length of a line
   Public Sub New()   'constructor
      Console.WriteLine("Object is being created")
   End Sub
                                         131
   Public Sub setLength(ByVal len As Double)
      length = len
   End Sub
When the above code is compiled and executed, it produces the following result −
Object is being created
Length of line : 6
A default constructor does not have any parameter, but if you need, a constructor can
have parameters. Such constructors are called parameterized constructors. This
technique helps you to assign initial value to an object at the time of its creation as
shown in the following example −
                                                                             Live Demo
Class Line
   Private length As Double    ' Length of a line
   Public Sub New(ByVal len As Double)   'parameterised constructor
      Console.WriteLine("Object is being created, length = {0}",
len)
      length = len
   End Sub
   Public Sub setLength(ByVal len As Double)
      length = len
   End Sub
                                         132
      Console.WriteLine("Length of line set by setLength : {0}",
line.getLength())
      Console.ReadKey()
   End Sub
End Class
When the above code is compiled and executed, it produces the following result −
Object is being created, length = 10
Length of line set by constructor : 10
Length of line set by setLength : 6
A destructor is a special member Sub of a class that is executed whenever an object
of its class goes out of scope.
A destructor has the name Finalize and it can neither return a value nor can it take
any parameters. Destructor can be very useful for releasing resources before coming
out of the program like closing files, releasing memories, etc.
Destructors cannot be inherited or overloaded.
Following example explains the concept of destructor −
                                                                           Live Demo
Class Line
   Private length As Double    ' Length of a line
   Public Sub New()   'parameterised constructor
      Console.WriteLine("Object is being created")
   End Sub
                                         133
When the above code is compiled and executed, it produces the following result −
Object is being created
Length of line : 6
Object is being deleted
Shared Members of a VB.Net Class
We can define class members as static using the Shared keyword. When we declare a
member of a class as Shared, it means no matter how many objects of the class are
created, there is only one copy of the member.
The keyword Shared implies that only one instance of the member exists for a class.
Shared variables are used for defining constants because their values can be retrieved
by invoking the class without creating an instance of it.
Shared variables can be initialized outside the member function or class definition. You
can also initialize Shared variables inside the class definition.
You can also declare a member function as Shared. Such functions can access only
Shared variables. The Shared functions exist even before the object is created.
The following example demonstrates the use of shared members −
                                                                              Live Demo
Class StaticVar
   Public Shared num As Integer
   Public Sub count()
      num = num + 1
   End Sub
   Public Shared Function getNum() As Integer
      Return num
   End Function
   Shared Sub Main()
      Dim s As StaticVar = New StaticVar()
      s.count()
      s.count()
      s.count()
      Console.WriteLine("Value of variable num: {0}",
StaticVar.getNum())
      Console.ReadKey()
   End Sub
End Class
When the above code is compiled and executed, it produces the following result −
Value of variable num: 3
Inheritance
One of the most important concepts in object-oriented programming is that of
inheritance. Inheritance allows us to define a class in terms of another class which
                                          134
makes it easier to create and maintain an application. This also provides an opportunity
to reuse the code functionality and fast implementation time.
When creating a class, instead of writing completely new data members and member
functions, the programmer can designate that the new class should inherit the
members of an existing class. This existing class is called the base class, and the new
class is referred to as the derived class.
                                          135
   End Sub
End Class
When the above code is compiled and executed, it produces the following result −
Total area: 35
Base Class Initialization
The derived class inherits the base class member variables and member methods.
Therefore, the super class object should be created before the subclass is created.
The super class or the base class is implicitly known as MyBase in VB.Net
The following program demonstrates this −
                                                                           Live Demo
'Derived class
Class Tabletop : Inherits Rectangle
   Private cost As Double
   Public Sub New(ByVal l As Double, ByVal w As Double)
      MyBase.New(l, w)
   End Sub
   Public Function GetCost() As Double
      Dim cost As Double
      cost = GetArea() * 70
      Return cost
   End Function
   Public Overrides Sub Display()
      MyBase.Display()
      Console.WriteLine("Cost: {0}", GetCost())
   End Sub
                                         136
    'end class Tabletop
End Class
Class RectangleTester
   Shared Sub Main()
      Dim t As Tabletop = New Tabletop(4.5, 7.5)
      t.Display()
      Console.ReadKey()
   End Sub
End Class
When the above code is compiled and executed, it produces the following result −
Length: 4.5
Width: 7.5
Area: 33.75
Cost: 2362.5
 Previous Page
Next Page  
Syntax
Assuming a block will raise an exception, a method catches an exception using a
combination of the Try and Catch keywords. A Try/Catch block is placed around the
                                            137
code that might generate an exception. Code within a Try/Catch block is referred to as
protected code, and the syntax for using Try/Catch looks like the following −
Try
   [ tryStatements ]
   [ Exit Try ]
[ Catch [ exception [ As type ] ] [ When expression ]
   [ catchStatements ]
   [ Exit Try ] ]
[ Catch ... ]
[ Finally
   [ finallyStatements ] ]
End Try
You can list down multiple catch statements to catch different type of exceptions in
case your try block raises more than one exception in different situations.
System.ArrayTypeMismatchException     Handles errors generated when type is mismatched with the array
                                      type.
                                         138
System.DivideByZeroException          Handles errors generated from dividing a dividend with zero.
Handling Exceptions
VB.Net provides a structured solution to the exception handling problems in the form of
try and catch blocks. Using these blocks the core program statements are separated
from the error-handling statements.
These        error     handling        blocks      are implemented     using
the Try, Catch and Finally keywords. Following is an example of throwing an
exception when dividing by zero condition occurs −
                                                                               Live Demo
Module exceptionProg
   Sub division(ByVal num1 As Integer, ByVal num2 As Integer)
      Dim result As Integer
      Try
          result = num1 \ num2
      Catch e As DivideByZeroException
         Console.WriteLine("Exception caught: {0}", e)
      Finally
         Console.WriteLine("Result: {0}", result)
      End Try
   End Sub
   Sub Main()
      division(25, 0)
      Console.ReadKey()
  End Sub
End Module
When the above code is compiled and executed, it produces the following result −
Exception caught: System.DivideByZeroException: Attempted to divide
by zero.
at ...
                                          139
Result: 0
Creating User-Defined Exceptions
You can also define your own exception. User-defined exception classes are derived
from the ApplicationException class. The following example demonstrates this −
                                                                             Live Demo
Module exceptionProg
   Public Class TempIsZeroException : Inherits ApplicationException
      Public Sub New(ByVal message As String)
         MyBase.New(message)
      End Sub
   End Class
   Public Class Temperature
      Dim temperature As Integer = 0
      Sub showTemp()
         If (temperature = 0) Then
             Throw (New TempIsZeroException("Zero Temperature
found"))
         Else
             Console.WriteLine("Temperature: {0}", temperature)
         End If
      End Sub
   End Class
   Sub Main()
      Dim temp As Temperature = New Temperature()
      Try
          temp.showTemp()
      Catch e As TempIsZeroException
         Console.WriteLine("TempIsZeroException: {0}", e.Message)
      End Try
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
TempIsZeroException: Zero Temperature found
Throwing Objects
You can throw an object if it is either directly or indirectly derived from the
System.Exception class.
You can use a throw statement in the catch block to throw the present object as −
Throw [ expression ]
The following program demonstrates this −
Module exceptionProg
                                         140
   Sub Main()
      Try
         Throw New ApplicationException("A custom exception _ is
being thrown here...")
      Catch e As Exception
         Console.WriteLine(e.Message)
      Finally
         Console.WriteLine("Now inside the Finally Block")
      End Try
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
A custom exception is being thrown here...
Now inside the Finally Block
 Previous Page
Next Page  
A file is a collection of data stored in a disk with a specific name and a directory path.
When a file is opened for reading or writing, it becomes a stream.
The stream is basically the sequence of bytes passing through the communication
path. There are two main streams: the input stream and the output stream.
The input stream is used for reading data from file (read operation) and the output
stream is used for writing into the file (write operation).
                                             141
BufferedStream       A temporary storage for a stream of bytes.
                                           142
You need to create a FileStream object to create a new file or open an existing file.
The syntax for creating a FileStream object is as follows −
Dim <object_name> As FileStream = New FileStream(<file_name>,
<FileMode Enumerator>, <FileAccess Enumerator>, <FileShare
Enumerator>)
For example, for creating a FileStream object F for reading a file named sample.txt −
Dim f1 As FileStream = New FileStream("sample.txt",
FileMode.OpenOrCreate, FileAccess.ReadWrite)
   Parameter                                            Description
FileMode
                  The FileMode enumerator defines various methods for opening files. The
                  members of the FileMode enumerator are −
                         Append − It opens an existing file and puts cursor at the end of file, or
                          creates the file, if the file does not exist.
                         Create − It creates a new file.
                         CreateNew − It specifies to the operating system that it should create a
                          new file.
                         Open − It opens an existing file.
                         OpenOrCreate − It specifies to the operating system that it should open a
                          file if it exists, otherwise it should create a new file.
                         Truncate − It opens an existing file and truncates its size to zero bytes.
FileAccess
                  FileAccess enumerators have members: Read, ReadWrite and Write.
FileShare
                  FileShare enumerators have the following members −
                         Inheritable − It allows a file handle to pass inheritance to the child
                           processes
                         None − It declines sharing of the current file
                         Read − It allows opening the file for reading
                         ReadWrite − It allows opening the file for reading and writing
                         Write − It allows opening the file for writing
Example
The following program demonstrates use of the FileStream class −
                                                                                Live Demo
                                            143
       Imports System.IO
       Module fileProg
          Sub Main()
             Dim f1 As FileStream = New FileStream("sample.txt", _
       FileMode.OpenOrCreate, FileAccess.ReadWrite)
             Dim i As Integer
              For i = 0 To 20
                 f1.WriteByte(CByte(i))
              Next i
              f1.Position = 0
             For i = 0 To 20
                Console.Write("{0} ", f1.ReadByte())
             Next i
             f1.Close()
             Console.ReadKey()
          End Sub
       End Module
       When the above code is compiled and executed, it produces the following result −
       1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 -1
       Advanced File Operations in VB.Net
       The preceding example provides simple file operations in VB.Net. However, to utilize
       the immense powers of System.IO classes, you need to know the commonly used
       properties and methods of these classes.
       We will discuss these classes and the operations they perform in the following
       sections. Please click the links provided to get to the individual sections −
Sr.N                                      Topic and Description
 o.
1
                      Reading from and Writing to Text Files
         Previous Page
        Next Page  
        The StreamReader and StreamWriter classes are used for reading from and writing data
        to text files. These classes inherit from the abstract base class Stream, which supports
        reading and writing bytes into a file stream.
                                                144
represents a reader for reading series of characters. The following table describes some of
the commonly used methods of the StreamReader class −
1
         Public Overrides Sub Close
         It closes the StreamReader object and the underlying stream and releases any system
         resources associated with the reader.
2
         Public Overrides Function Peek As Integer
         Returns the next available character but does not consume it.
3
         Public Overrides Function Read As Integer
         Reads the next character from the input stream and advances the character position by
         one character.
Example
The following example demonstrates reading a text file named Jamaica.txt. The file reads
−
Down the way where the nights are gay
And the sun shines daily on the mountain top
I took a trip on a sailing ship
And when I reached Jamaica
I made a stop
Imports System.IO
Module fileProg
   Sub Main()
      Try
          ' Create an instance of StreamReader to read from a file.
          ' The using statement also closes the StreamReader.
          Using sr As StreamReader = New StreamReader("e:/jamaica.txt")
             Dim line As String
             ' Read and display lines from the file until the end of
             ' the file is reached.
             line = sr.ReadLine()
             While (line <> Nothing)
                Console.WriteLine(line)
                line = sr.ReadLine()
             End While
          End Using
                                        145
      Catch e As Exception
         ' Let the user know what went wrong.
         Console.WriteLine("The file could not be read:")
         Console.WriteLine(e.Message)
      End Try
      Console.ReadKey()
   End Sub
End Module
Guess what it displays when you compile and run the program!
1
         Public Overrides Sub Close
         Closes the current StreamWriter object and the underlying stream.
2
         Public Overrides Sub Flush
         Clears all buffers for the current writer and causes any buffered data to be written to the
         underlying stream.
3
         Public Overridable Sub Write (value As Boolean)
         Writes the text representation of a Boolean value to the text string or stream. (Inherited
         from TextWriter.)
4
         Public Overrides Sub Write (value As Char)
         Writes a character to the stream.
5
         Public Overridable Sub Write (value As Decimal)
         Writes the text representation of a decimal value to the text string or stream.
6
         Public Overridable Sub Write (value As Double)
                                        146
         Writes the text representation of an 8-byte floating-point value to the text string or stream.
7
         Public Overridable Sub Write (value As Integer)
         Writes the text representation of a 4-byte signed integer to the text string or stream.
8
         Public Overrides Sub Write (value As String)
         Writes a string to the stream.
9
         Public Overridable Sub WriteLine
         Writes a line terminator to the text string or stream.
The above list is not exhaustive. For complete list of methods please visit Microsoft's
documentation
Example
The following example demonstrates writing text data into a file using the StreamWriter
class −
                                                                                    Live Demo
Imports System.IO
Module fileProg
   Sub Main()
      Dim names As String() = New String() {"Zara Ali", _
         "Nuha Ali", "Amir Sohel", "M Amlan"}
      Dim s As String
      Using sw As StreamWriter = New StreamWriter("names.txt")
         For Each s In names
            sw.WriteLine(s)
         Next s
      End Using
      ' Read and show each line from the file.
      Dim line As String
      Using sr As StreamReader = New StreamReader("names.txt")
         line = sr.ReadLine()
         While (line <> Nothing)
            Console.WriteLine(line)
            line = sr.ReadLine()
         End While
      End Using
      Console.ReadKey()
   End Sub
                                          147
    End Module
    When the above code is compiled and executed, it produces the following result −
    Zara Ali
    Nuha Ali
    Amir Sohel
    M Amlan
    It    involves    reading   from       and       writing     into          text    files.
    The StreamReader and StreamWriter classes help to accomplish it.
2
                               VB.Net - Binary Files
     Previous Page
    Next Page  
    The BinaryReader and BinaryWriter classes are used for reading from and writing to a
    binary file.
     1
              Public Overridable Sub Close
              It closes the BinaryReader object and the underlying stream.
     2
              Public Overridable Function Read As Integer
              Reads the characters from the underlying stream and advances the current position of
              the stream.
     3
              Public Overridable Function ReadBoolean As Boolean
              Reads a Boolean value from the current stream and advances the current position of the
              stream by one byte.
                                            148
4
         Public Overridable Function ReadByte As Byte
         Reads the next byte from the current stream and advances the current position of the
         stream by one byte.
5
         Public Overridable Function ReadBytes (count As Integer) As Byte()
         Reads the specified number of bytes from the current stream into a byte array and
         advances the current position by that number of bytes.
6
         Public Overridable Function ReadChar As Char
         Reads the next character from the current stream and advances the current position of
         the stream in accordance with the Encoding used and the specific character being read
         from the stream.
7
         Public Overridable Function ReadChars (count As Integer) As Char()
         Reads the specified number of characters from the current stream, returns the data in a
         character array, and advances the current position in accordance with the Encoding used
         and the specific character being read from the stream.
8
         Public Overridable Function ReadDouble As Double
         Reads an 8-byte floating point value from the current stream and advances the current
         position of the stream by eight bytes.
9
         Public Overridable Function ReadInt32 As Integer
         Reads a 4-byte signed integer from the current stream and advances the current position
         of the stream by four bytes.
10
         Public Overridable Function ReadString As String
         Reads a string from the current stream. The string is prefixed with the length, encoded as
         an integer seven bits at a time.
                                       149
Sr.No                                  Function Name & Description
   .
1
        Public Overridable Sub Close
        It closes the BinaryWriter object and the underlying stream.
2
        Public Overridable Sub Flush
        Clears all buffers for the current writer and causes any buffered data to be written to the
        underlying device.
3
        Public Overridable Function Seek (offset As Integer, origin As SeekOrigin ) As
        Long
        Sets the position within the current stream.
4
        Public Overridable Sub Write (value As Boolean)
        Writes a one-byte Boolean value to the current stream, with 0 representing false and 1
        representing true.
5
        Public Overridable Sub Write (value As Byte)
        Writes an unsigned byte to the current stream and advances the stream position by one
        byte.
6
        Public Overridable Sub Write (buffer As Byte())
        Writes a byte array to the underlying stream.
7
        Public Overridable Sub Write (ch As Char )
        Writes a Unicode character to the current stream and advances the current position of
        the stream in accordance with the Encoding used and the specific characters being
        written to the stream.
8
        Public Overridable Sub Write (chars As Char())
        Writes a character array to the current stream and advances the current position of the
        stream in accordance with the Encoding used and the specific characters being written to
                                       150
         the stream.
9
         Public Overridable Sub Write (value As Double )
         Writes an eight-byte floating-point value to the current stream and advances the stream
         position by eight bytes.
10
         Public Overridable Sub Write (value As Integer )
         Writes a four-byte signed integer to the current stream and advances the stream position
         by four bytes.
11
         Public Overridable Sub Write (value As String )
         Writes a length-prefixed string to this stream in the current encoding of the BinaryWriter
         and advances the current position of the stream in accordance with the encoding used
         and the specific characters being written to the stream.
Example
The following example demonstrates reading and writing binary data −
                                                                                Live Demo
Imports System.IO
Module fileProg
   Sub Main()
      Dim bw As BinaryWriter
      Dim br As BinaryReader
      Dim i As Integer = 25
      Dim d As Double = 3.14157
      Dim b As Boolean = True
      Dim s As String = "I am happy"
      'create the file
       Try
         bw = New BinaryWriter(New FileStream("mydata",
FileMode.Create))
      Catch e As IOException
         Console.WriteLine(e.Message + "\n Cannot create file.")
         Return
      End Try
      'writing into the file
Try
                                        151
              bw.Write(i)
              bw.Write(d)
              bw.Write(b)
              bw.Write(s)
           Catch e As IOException
              Console.WriteLine(e.Message + "\n Cannot write to file.")
              Return
           End Try
           bw.Close()
           'reading from the file
           Try
             br = New BinaryReader(New FileStream("mydata",
    FileMode.Open))
          Catch e As IOException
             Console.WriteLine(e.Message + "\n Cannot open file.")
             Return
          End Try
           Try
             i = br.ReadInt32()
             Console.WriteLine("Integer data: {0}", i)
             d = br.ReadDouble()
             Console.WriteLine("Double data: {0}", d)
             b = br.ReadBoolean()
             Console.WriteLine("Boolean data: {0}", b)
             s = br.ReadString()
             Console.WriteLine("String data: {0}", s)
          Catch e As IOException
             Console.WriteLine(e.Message + "\n Cannot read from file.")
             Return
          End Try
          br.Close()
          Console.ReadKey()
       End Sub
    End Module
    When the above code is compiled and executed, it produces the following result −
    Integer data: 25
    Double data: 3.14157
    Boolean data: True
    String data: I am happy
    It    involves    reading   from       and       writing    into        binary     files.
    The BinaryReader and BinaryWriter classes help to accomplish this.
3
                      VB.Net - Windows File System
                                           152
 Previous Page
Next Page  
VB.Net allows you to work with the directories and files using various directory and file-
related classes like, the DirectoryInfo class and the FileInfo class.
 1
          Attributes
          Gets the attributes for the current file or directory.
 2
          CreationTime
          Gets the creation time of the current file or directory.
 3
          Exists
          Gets a Boolean value indicating whether the directory exists.
 4
          Extension
          Gets the string representing the file extension.
 5
          FullName
          Gets the full path of the directory or file.
 6
          LastAccessTime
          Gets the time the current file or directory was last accessed.
 7
          Name
                                            153
         Gets the name of this DirectoryInfo instance.
1
         Public Sub Create
         Creates a directory.
2
         Public Function CreateSubdirectory (path As String ) As DirectoryInfo
         Creates a subdirectory or subdirectories on the specified path. The specified path can be
         relative to this instance of the DirectoryInfo class.
3
         Public Overrides Sub Delete
         Deletes this DirectoryInfo if it is empty.
4
         Public Function GetDirectories As DirectoryInfo()
         Returns the subdirectories of the current directory.
5
         Public Function GetFiles As FileInfo()
         Returns a file list from the current directory.
For complete list of properties and methods please visit Microsoft's documentation.
                                          154
1
        Attributes
        Gets the attributes for the current file.
2
        CreationTime
        Gets the creation time of the current file.
3
        Directory
        Gets an instance of the directory, which the file belongs to.
4
        Exists
        Gets a Boolean value indicating whether the file exists.
5
        Extension
        Gets the string representing the file extension.
6
        FullName
        Gets the full path of the file.
7
        LastAccessTime
        Gets the time the current file was last accessed.
8
        LastWriteTime
        Gets the time of the last written activity of the file.
9
        Length
        Gets the size, in bytes, of the current file.
10
        Name
        Gets the name of the file.
                                          155
Sr.No                                      Method Name & Purpose
   .
1
        Public Function AppendText As StreamWriter
        Creates a StreamWriter that appends text to the file represented by this instance of the
        FileInfo.
2
        Public Function Create As FileStream
        Creates a file.
3
        Public Overrides Sub Delete
        Deletes a file permanently.
4
        Public Sub MoveTo (destFileName As String )
        Moves a specified file to a new location, providing the option to specify a new file name.
5
        Public Function Open (mode As FileMode) As FileStream
        Opens a file in the specified mode.
6
        Public Function Open (mode As FileMode, access As FileAccess ) As FileStream
        Opens a file in the specified mode with read, write, or read/write access.
7
        Public Function Open (mode As FileMode, access As FileAccess, share As
        FileShare ) As FileStream
        Opens a file in the specified mode with read, write, or read/write access and the specified
        sharing option.
8
        Public Function OpenRead As FileStream
        Creates a read-only FileStream
9
        Public Function OpenWrite As FileStream
        Creates a write-only FileStream.
                                       156
  For complete list of properties and methods, please visit Microsoft's documentation
 Example
  The following example demonstrates the use of the above-mentioned classes −
 Imports System.IO
 Module fileProg
    Sub Main()
       'creating a DirectoryInfo object
       Dim mydir As DirectoryInfo = New DirectoryInfo("c:\Windows")
       ' getting the files in the directory, their names and size
       Dim f As FileInfo() = mydir.GetFiles()
       Dim file As FileInfo
  When you compile and run the program, it displays the names of files and their size in the
  Windows directory.
  It gives a VB.Net programmer the ability to browse and locate Windows files and
  directories.
 Previous Page
Next Page  
An object is a type of user interface element you create on a Visual Basic form by
using a toolbox control. In fact, in Visual Basic, the form itself is an object. Every Visual
Basic control consists of three important elements −
      Properties which describe the object,
      Methods cause an object to do something and
      Events are what happens when an object does something.
                                            157
Control Properties
All the Visual Basic Objects can be moved, resized or customized by setting their
properties. A property is a value or characteristic held by a Visual Basic object, such as
Caption or Fore Color.
Properties can be set at design time by using the Properties window or at run time by
using statements in the program code.
Object. Property = Value
Where
      Object is the name of the object you're customizing.
      Property is the characteristic you want to change.
      Value is the new property setting.
For example,
Form1.Caption = "Hello"
You can set any of the form properties using Properties Window. Most of the properties
can be set or read during application execution. You can refer to Microsoft
documentation for a complete list of properties associated with different controls and
restrictions applied to them.
Control Methods
A method is a procedure created as a member of a class and they cause an object to
do something. Methods are used to access or manipulate the characteristics of an
object or a variable. There are mainly two categories of methods you will use in your
classes −
      If you are using a control such as one of those provided by the Toolbox, you can
        call any of its public methods. The requirements of such a method depend on
        the class being used.
      If none of the existing methods can perform your desired task, you can add a
        method to a class.
For example, the MessageBox control has a method named Show, which is called in
the code snippet below −
Public Class Form1
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs)
   Handles Button1.Click
      MessageBox.Show("Hello, World")
   End Sub
End Class
                                            158
       Control Events
       An event is a signal that informs an application that something important has occurred.
       For example, when a user clicks a control on a form, the form can raise a Click event
       and call a procedure that handles the event. There are various types of events
       associated with a Form like click, double click, close, load, resize, etc.
       Following is the default structure of a form Load event handler subroutine. You can
       see this code by double clicking the code which will give you a complete list of the all
       events associated with Form control −
       Private Sub Form1_Load(sender As Object, e As EventArgs) Handles
       MyBase.Load
          'event handler code goes here
       End Sub
       Basic Controls
       VB.Net provides a huge variety of controls that help you to create rich user interface.
       Functionalities of all these controls are defined in the respective control classes. The
       control classes are defined in the System.Windows.Forms namespace.
       The following table lists some of the commonly used controls −
Sr.N                                        Widget & Description
 o.
1
                                         VB.Net - Forms
         Previous Page
        Next Page  
        Let's start with creating a Window Forms Application by following the following steps in
        Microsoft Visual Studio - File → New Project → Windows Forms Applications
        Finally, select OK, Microsoft Visual Studio creates your project and displays following
        window Form with a name Form1.
                                                 159
Visual Basic Form is the container for all the controls that make up the user interface.
Every window you see in a running visual basic application is a form, thus the terms form
and window describe the same entity. Visual Studio creates a default form for you when
you create a Windows Forms Application.
Every form will have title bar on which the form's caption is displayed and there will be
buttons to close, maximize and minimize the form shown below −
                                       160
If you click the icon on the top left corner, it opens the control menu, which contains the
various commands to control the form like to move control from one place to another
place, to maximize or minimize the form or to close the form.
Form Properties
Following table lists down various important properties related to a form. These properties
can be set or read during application execution. You can refer to Microsoft documentation
for a complete list of properties associated with a Form control −
 S.        Properties                                      Description
 N
1
      AcceptButton            The button that's automatically activated when you press Enter, no
                              matter which control has the focus at the time. Usually the OK
                              button on a form is set as AcceptButton for a form.
2
      CancelButton            The button that's automatically activated when you hit the Esc key.
                              Usually, the Cancel button on a form is set as CancelButton for a
                                        161
                        form.
3
    AutoScale           This Boolean property determines whether the controls you place on
                        the form are automatically scaled to the height of the current font.
                        The default value of this property is True. This is a property of the
                        form, but it affects the controls on the form.
4
    AutoScroll          This Boolean property indicates whether scroll bars will be
                        automatically attached to the form if it is resized to a point that not all
                        its controls are visible.
5
    AutoScrollMinSize   This property lets you specify the minimum size of the form, before
                        the scroll bars are attached.
6
    AutoScrollPositio   The AutoScrollPosition is the number of pixels by which the two
    n                   scroll bars were displaced from their initial locations.
7
    BackColor           Sets the form background color.
8
    BorderStyle         The BorderStyle property determines the style of the form's border
                        and the appearance of the form −
                               None − Borderless window that can't be resized.
                               Sizable − This is default value and will be used for resizable
                                window that's used for displaying regular forms.
                               Fixed3D − Window with a visible border, "raised" relative to
                                the main area. In this case, windows can't be resized.
                               FixedDialog − A fixed window, used to create dialog boxes.
                               FixedSingle − A fixed window with a single line border.
                               FixedToolWindow − A fixed window with a Close button only.
                                It looks like the toolbar displayed by the drawing and imaging
                                applications.
                               SizableToolWindow − Same as the FixedToolWindow but
                                resizable. In addition, its caption font is smaller than the
                                usual.
9
    ControlBox          By default, this property is True and you can set it to False to hide
                                   162
                     the icon and disable the Control menu.
10
     Enabled         If True, allows the form to respond to mouse and keyboard events; if
                     False, disables form.
11
     Font            This property specify font type, style, size
12
     HelpButton      Determines whether a Help button should be displayed in the
                     caption box of the form.
13
     Height          This is the height of the Form in pixels.
14
     MinimizeBox     By default, this property is True and you can set it to False to hide
                     the Minimize button on the title bar.
15
     MaximizeBox     By default, this property is True and you can set it to False to hide
                     the Maximize button on the title bar.
16
     MinimumSize     This specifies the minimum height and width of the window you can
                     minimize.
17
     MaximumSize     This specifies the maximum height and width of the window you
                     maximize.
18
     Name            This is the actual name of the form.
19
     StartPosition   This property determines the initial position of the form when it's first
                     displayed. It will have any of the following values −
                           CenterParent − The form is centered in the area of its parent
                            form.
                           CenterScreen − The form is centered on the monitor.
                           Manual − The location and size of the form will determine its
                            starting position.
                           WindowsDefaultBounds − The form is positioned at the
                               163
164
165
         Performs scaling of the form.
15
         Select
         Activates the control.
16
         SendToBack
         Sends the control to the back of the z-order.
17
         SetAutoScrollMargin
         Sets the size of the auto-scroll margins.
18
         SetDesktopBounds
         Sets the bounds of the form in desktop coordinates.
19
         SetDesktopLocation
         Sets the location of the form in desktop coordinates.
20
         SetDisplayRectLocation
         Positions the display window to the specified value.
21
         Show
         Displays the control to the user.
22
         ShowDialog
         Shows the form as a modal dialog box.
Form Events
Following table lists down various important events related to a form. You can refer to
Microsoft documentation for a complete list of events associated with forms control −
                                         166
1
     Activated          Occurs when the form is activated in code or by the user.
2
     Click              Occurs when the form is clicked.
3
     Closed             Occurs before the form is closed.
4
     Closing            Occurs when the form is closing.
5
     DoubleClick        Occurs when the form control is double-clicked.
6
     DragDrop           Occurs when a drag-and-drop operation is completed.
7
     Enter              Occurs when the form is entered.
8
     GotFocus           Occurs when the form control receives focus.
9
     HelpButtonClicke   Occurs when the Help button is clicked.
     d
10
     KeyDown            Occurs when a key is pressed while the form has focus.
11
     KeyPress           Occurs when a key is pressed while the form has focus.
12
     KeyUp              Occurs when a key is released while the form has focus.
13
     Load               Occurs before a form is displayed for the first time.
14
     LostFocus          Occurs when the form loses focus.
15
     MouseDown          Occurs when the mouse pointer is over the form and a mouse
                        button is pressed.
                               167
16
         MouseEnter             Occurs when the mouse pointer enters the form.
17
         MouseHover             Occurs when the mouse pointer rests on the form.
18
         MouseLeave             Occurs when the mouse pointer leaves the form.
19
         MouseMove              Occurs when the mouse pointer is moved over the form.
20
         MouseUp                Occurs when the mouse pointer is over the form and a mouse
                                button is released.
21
         MouseWheel             Occurs when the mouse wheel moves while the control has focus.
22
         Move                   Occurs when the form is moved.
23
         Resize                 Occurs when the control is resized.
24
         Scroll                 Occurs when the user or code scrolls through the client area.
25
         Shown                  Occurs whenever the form is first displayed.
26
         VisibleChanged         Occurs when the Visible property value changes.
Example
Following is an example, which shows how we create two buttons at the time of form load
event and different properties are being set at the same time.
Because Form1 is being referenced within its own event handler, so it will be written
as Me instead of using its name, but if we access the same form inside any other control's
event handler, then it will be accessed using its name Form1.
Let's double click on the Form and put the follow code in the opened window.
Public Class Form1
   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles
MyBase.Load
      ' Create two buttons to use as the accept and cancel buttons.
                                       168
      Dim button1 As New Button()
      Dim button2 As New Button()
      ' Set the text of button1 to "OK".
      button1.Text = "OK"
      ' Set the position of the button on the form.
      button1.Location = New Point(10, 10)
      ' Set the text of button2 to "Cancel".
      button2.Text = "Cancel"
      ' Set the position of the button based on the location of
button1.
      button2.Location = _
         New Point(button1.Left, button1.Height + button1.Top + 10)
      ' Set the caption bar text of the form.
      Me.Text = "tutorialspoint.com"
      ' Display a help button on the form.
      Me.HelpButton = True
      ' Define the border style of the form to a dialog box.
      Me.FormBorderStyle = FormBorderStyle.FixedDialog
      ' Set the MaximizeBox to false to remove the maximize box.
      Me.MaximizeBox = False
      ' Set the MinimizeBox to false to remove the minimize box.
      Me.MinimizeBox = False
      ' Set the accept button of the form to button1.
      Me.AcceptButton = button1
      ' Set the cancel button of the form to button2.
      Me.CancelButton = button2
      ' Set the start position of the form to the center of the
screen.
      Me.StartPosition = FormStartPosition.CenterScreen
      ' Set window width and height
      Me.Height = 300
      Me.Width = 560
      ' Add button1 to the form.
      Me.Controls.Add(button1)
      ' Add button2 to the form.
      Me.Controls.Add(button2)
   End Sub
End Class
When the above code is executed and run using Start button available at the Microsoft
Visual Studio tool bar, it will show the following window −
                                     169
    The container for all the controls that make up the user interface.
2
                            VB.Net - TextBox Control
     Previous Page
    Next Page  
    Text box controls allow entering text on a form at runtime. By default, it takes a single line
    of text, however, you can make it accept multiple texts and even add scroll bars to it.
    Let's create a text box by dragging a Text Box control from the Toolbox and dropping it on
    the form.
                                             170
The Properties of the TextBox Control
The following are some of the commonly used properties of the TextBox control −
1
         AcceptsReturn
         Gets or sets a value indicating whether pressing ENTER in a multiline TextBox control
         creates a new line of text in the control or activates the default button for the form.
2
         AutoCompleteCustomSource
         Gets or sets a custom System.Collections.Specialized.StringCollection to use when the
         AutoCompleteSourceproperty is set to CustomSource.
3
         AutoCompleteMode
         Gets or sets an option that controls how automatic completion works for the TextBox.
4
         AutoCompleteSource
         Gets or sets a value specifying the source of complete strings used for automatic
         completion.
                                       171
5
     CharacterCasing
     Gets or sets whether the TextBox control modifies the case of characters as they are
     typed.
6
     Font
     Gets or sets the font of the text displayed by the control.
7
     FontHeight
     Gets or sets the height of the font of the control.
8
     ForeColor
     Gets or sets the foreground color of the control.
9
     Lines
     Gets or sets the lines of text in a text box control.
10
     Multiline
     Gets or sets a value indicating whether this is a multiline TextBox control.
11
     PasswordChar
     Gets or sets the character used to mask characters of a password in a single-line
     TextBox control.
12
     ReadOnly
     Gets or sets a value indicating whether text in the text box is read-only.
13
     ScrollBars
     Gets or sets which scroll bars should appear in a multiline TextBox control. This property
     has values −
            None
            Horizontal
            Vertical
                                      172
173
3
         Copy
         Copies the current selection in the text box to the Clipboard.
4
         Cut
         Moves the current selection in the text box to the Clipboard.
5
         Paste
         Replaces the current selection in the text box with the contents of the Clipboard.
6
         Paste(String)
         Sets the selected text to the specified text without clearing the undo buffer.
7
         ResetText
         Resets the Text property to its default value.
8
         ToString
         Returns a string that represents the TextBoxBase control.
9
         Undo
         Undoes the last edit operation in the text box.
1
         Click
         Occurs when the control is clicked.
2
         DoubleClick
                                         174
           Occurs when the control is double-clicked.
3
           TextAlignChanged
           Occurs when the TextAlign property value changes.
Example
In this example, we create three text boxes and use the Click event of a button to display
the entered text using a message box. Take the following steps −
       Drag and drop three Label controls and three TextBox controls on the form.
       Change the texts on the labels to: Name, Organization and Comments, respectively.
       Change the names of the text boxes to txtName, txtOrg and txtComment,
        respectively.
       Drag and drop a button control on the form. Set its name to btnMessage and its text
        property to 'Send Message'.
       Click the button to add the Click event in the code window and add the following
        code.
Public Class Form1
   Private Sub Form1_Load(sender As Object, e As EventArgs) _
       Handles MyBase.Load
      ' Set the caption bar text of the form.
      Me.Text = "tutorialspont.com"
   End Sub
When the above code is executed and run using Start button available at the Microsoft
Visual Studio tool bar, it will show the following window −
                                         175
    Clicking the Send Message button would show the following message box −
     Previous Page
    Next Page  
    The Label control represents a standard Windows label. It is generally used to display
    some informative text on the GUI which is not changed during runtime.
    Let's create a label by dragging a Label control from the Toolbox and dropping it on the
    form.
                                            176
Properties of the Label Control
The following are some of the commonly used properties of the Label control −
1
         Autosize
         Gets or sets a value specifying if the control should be automatically resized to display all
         its contents.
2
         BorderStyle
         Gets or sets the border style for the control.
3
         FlatStyle
         Gets or sets the flat style appearance of the Label control
4
         Font
         Gets or sets the font of the text displayed by the control.
5
         FontHeight
         Gets or sets the height of the font of the control.
                                         177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
6
     KeyDown
     Occurs when a key is pressed when the control has focus.
7
     KeyPress
     Occurs when a key is pressed when the control has focus.
8
     KeyUp
     Occurs when a key is released when the control has focus.
9
     Leave
     Occurs when input focus leaves the PictureBox.
10
     LoadCompleted
     Occurs when the asynchronous image-load operation is completed, been canceled, or
     raised an exception.
11
     LoadProgressChanged
     Occurs when the progress of an asynchronous image-loading operation has changed.
12
     Resize
     Occurs when the control is resized.
13
     RightToLeftChanged
     Occurs when the value of the RightToLeft property changes.
14
     SizeChanged
     Occurs when the Size property value changes.
15
     SizeModeChanged
     Occurs when SizeMode changes.
                                   223
16
         TabIndexChanged
         Occurs when the value of the TabIndex property changes.
17
         TabStopChanged
         Occurs when the value of the TabStop property changes.
18
         TextChanged
         Occurs when the value of the Text property changes.
Example
In this example, let us put a picture box and a button control on the form. We set the image
property of the picture box to logo.png, as we used before. The Click event of the button
named Button1 is coded to stretch the image to a specified size −
Public Class Form1
   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles
MyBase.Load
      ' Set the caption bar text of the form.
      Me.Text = "tutorialspoint.com"
   End Sub
Design View −
                                        224
When the application is executed, it displays −
                                        225
     It represents a Windows picture box control for displaying an image.
10
                        VB.Net - ProgressBar Control
      Previous Page
     Next Page  
     It represents a Windows progress bar control. It is used to provide visual feedback to your
     users about the status of some task. It shows a bar that fills in from left to right as the
     operation progresses.
     Let's click on a ProgressBar control from the Toolbox and place it on the form.
                                             226
The main properties of a progress bar are Value, Maximum and Minimum. The Minimum
and Maximum properties are used to set the minimum and maximum values that the
progress bar can display. The Value property specifies the current position of the progress
bar.
The ProgressBar control is typically used when an application performs tasks such as
copying files or printing documents. To a user the application might look unresponsive if
there is no visual cue. In such cases, using the ProgressBar allows the programmer to
provide a visual status of progress.
1
         AllowDrop
         Overrides Control.AllowDrop.
2
         BackgroundImage
         Gets or sets the background image for the ProgressBar control.
3
         BackgroundImageLayout
         Gets or sets the layout of the background image of the progress bar.
                                        227
4
     CausesValidation
     Gets or sets a value indicating whether the control, when it receives focus, causes
     validation to be performed on any controls that require validation.
5
     Font
     Gets or sets the font of text in the ProgressBar.
6
     ImeMode
     Gets or sets the input method editor (IME) for the ProgressBar.
7
     ImeModeBase
     Gets or sets the IME mode of a control.
8
     MarqueeAnimationSpeed
     Gets or sets the time period, in milliseconds, that it takes the progress block to scroll
     across the progress bar.
9
     Maximum
     Gets or sets the maximum value of the range of the control.v
10
     Minimum
     Gets or sets the minimum value of the range of the control.
11
     Padding
     Gets or sets the space between the edges of a ProgressBar control and its contents.
12
     RightToLeftLayout
     Gets or sets a value indicating whether the ProgressBar and any text it contains is
     displayed from right to left.
13
     Step
                                    228
         Gets or sets the amount by which a call to the PerformStep method increases the current
         position of the progress bar.
14
         Style
         Gets or sets the manner in which progress should be indicated on the progress bar.
15
         Value
         Gets or sets the current position of the progress bar.v
1
         Increment
         Increments the current position of the ProgressBar control by specified amount.
2
         PerformStep
         Increments the value by the specified step.
3
         ResetText
         Resets the Text property to its default value.
4
         ToString
         Returns a string that represents the progress bar control.
                                        229
1
     BackgroundImageChanged
     Occurs when the value of the BackgroundImage property changes.
2
     BackgroundImageLayoutChanged
     Occurs when the value of the BackgroundImageLayout property changes.
3
     CausesValidationChanged
     Occurs when the value of the CausesValidation property changes.
4
     Click
     Occurs when the control is clicked.
5
     DoubleClick
     Occurs when the user double-clicks the control.
6
     Enter
     Occurs when focus enters the control.
7
     FontChanged
     Occurs when the value of the Font property changes.
8
     ImeModeChanged
     Occurs when the value of the ImeMode property changes.
9
     KeyDown
     Occurs when the user presses a key while the control has focus.
10
     KeyPress
     Occurs when the user presses a key while the control has focus.
11
     KeyUp
                                   230
         Occurs when the user releases a key while the control has focus.
12
         Leave
         Occurs when focus leaves the ProgressBar control.
13
         MouseClick
         Occurs when the control is clicked by the mouse.
14
         MouseDoubleClick
         Occurs when the user double-clicks the control.
15
         PaddingChanged
         Occurs when the value of the Padding property changes.
16
         Paint
         Occurs when the ProgressBar is drawn.
17
         RightToLeftLayoutChanged
         Occurs when the RightToLeftLayout property changes.
18
         TabStopChanged
         Occurs when the TabStop property changes.
19
         TextChanged
         Occurs when the Text property changes.
Example
In this example, let us create a progress bar at runtime. Let's double click on the Form and
put the follow code in the opened window.
Public Class Form1
   Private Sub Form1_Load(sender As Object, e As EventArgs) _
                                        231
           Handles MyBase.Load
           'create two progress bars
           Dim ProgressBar1 As ProgressBar
           Dim ProgressBar2 As ProgressBar
           ProgressBar1 = New ProgressBar()
           ProgressBar2 = New ProgressBar()
           'set position
           ProgressBar1.Location = New Point(10, 10)
           ProgressBar2.Location = New Point(10, 50)
           'set values
           ProgressBar1.Minimum = 0
           ProgressBar1.Maximum = 200
           ProgressBar1.Value = 130
           ProgressBar2.Minimum = 0
           ProgressBar2.Maximum = 100
           ProgressBar2.Value = 40
           'add the progress bar to the form
           Me.Controls.Add(ProgressBar1)
           Me.Controls.Add(ProgressBar2)
           ' Set the caption bar text of the form.
           Me.Text = "tutorialspoint.com"
        End Sub
     End Class
     When the above code is executed and run using Start button available at the Microsoft
     Visual Studio tool bar, it will show the following window −
Previous Page
                                          232
Next Page  
The ScrollBar controls display vertical and horizontal scroll bars on the form. This is used
for navigating through large amount of information. There are two types of scroll bar
controls: HScrollBar for horizontal scroll bars and VScrollBar for vertical scroll bars.
These are used independently from each other.
Let's click on HScrollBar control and VScrollBar control from the Toolbox and place them
on the form.
 1
          AutoSize
          Gets or sets a value indicating whether the ScrollBar is automatically resized to fit its
          contents.
 2
          BackColor
          Gets or sets the background color for the control.
 3
          ForeColor
                                         233
         Gets or sets the foreground color of the scroll bar control.
4
         ImeMode
         Gets or sets the Input Method Editor (IME) mode supported by this control.
5
         LargeChange
         Gets or sets a value to be added to or subtracted from the Value property when the scroll
         box is moved a large distance.
6
         Maximum
         Gets or sets the upper limit of values of the scrollable range.
7
         Minimum
         Gets or sets the lower limit of values of the scrollable range.
8
         SmallChange
         Gets or sets the value to be added to or subtracted from the Value property when the
         scroll box is moved a small distance.
9
         Value
         Gets or sets a numeric value that represents the current position of the scroll box on the
         scroll bar control.
1
         OnClick
         Generates the Click event.
                                         234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
        Gets the previous visible tree node.
20
        Tag
        Gets or sets the object that contains data about the tree node.
21
        Text
        Gets or sets the text displayed in the label of the tree node.
22
        ToolTipText
        Gets or sets the text that appears when the mouse pointer hovers over a TreeNode.
23
        TreeView
        Gets the parent tree view that the tree node is assigned to.
1
        Collapse
        Collapses the tree node.
2
        Expand
        Expands the tree node.
3
        ExpandAll
        Expands all the child tree nodes.
4
        GetNodeCount
                                        252
         Returns the number of child tree nodes.
5
         Remove
         Removes the current tree node from the tree view control.
6
         Toggle
         Toggles the tree node to either the expanded or collapsed state.
7
         ToString
         Returns a string that represents the current object.
Example
In this example, let us create a tree view at runtime. Let's double click on the Form and put
the follow code in the opened window.
Public Class Form1
   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles
MyBase.Load
      'create a new TreeView
      Dim TreeView1 As TreeView
      TreeView1 = New TreeView()
      TreeView1.Location = New Point(10, 10)
      TreeView1.Size = New Size(150, 150)
       Me.Controls.Add(TreeView1)
       TreeView1.Nodes.Clear()
       'Creating the root node
       Dim root = New TreeNode("Application")
       TreeView1.Nodes.Add(root)
       TreeView1.Nodes(0).Nodes.Add(New TreeNode("Project 1"))
       'Creating child nodes under the first child
                                         253
                 TreeNode("Project File" & Str(loopindex)))
           Next loopindex
           ' Set the caption bar text of the form.
           Me.Text = "tutorialspoint.com"
        End Sub
     End Class
     When the above code is executed and run using Start button available at the Microsoft
     Visual Studio tool bar, it will show the following window −
                                             254
 Previous Page
Next Page  
The ListView control is used to display a list of items. Along with the TreeView control, it
allows you to create a Windows Explorer like interface.
Let's click on a ListView control from the Toolbox and place it on the form.
The ListView control displays a list of items along with icons. The Item property of the
ListView control allows you to add and remove items from it. The SelectedItem property
contains a collection of the selected items. The MultiSelect property allows you to set
select more than one item in the list view. The CheckBoxes property allows you to set
check boxes next to the items.
 1
         Alignment
         Gets or sets the alignment of items in the control.
 2
         AutoArrange
                                         255
     Gets or sets whether icons are automatically kept arranged.
3
     BackColor
     Gets or sets the background color.
4
     CheckBoxes
     Gets or sets a value indicating whether a check box appears next to each item in the
     control.
5
     CheckedIndices
     Gets the indexes of the currently checked items in the control.
6
     CheckedItems
     Gets the currently checked items in the control.
7
     Columns
     Gets the collection of all column headers that appear in the control.
8
     GridLines
     Gets or sets a value indicating whether grid lines appear between the rows and columns
     containing the items and subitems in the control.
9
     HeaderStyle
     Gets or sets the column header style.
10
     HideSelection
     Gets or sets a value indicating whether the selected item in the control remains
     highlighted when the control loses focus.
11
     HotTracking
     Gets or sets a value indicating whether the text of an item or subitem has the appearance
     of a hyperlink when the mouse pointer passes over it.
                                     256
12
     HoverSelection
     Gets or sets a value indicating whether an item is automatically selected when the mouse
     pointer remains over the item for a few seconds.
13
     InsertionMark
     Gets an object used to indicate the expected drop location when an item is dragged within
     a ListView control.
14
     Items
     Gets a collection containing all items in the control.
15
     LabelWrap
     Gets or sets a value indicating whether item labels wrap when items are displayed in the
     control as icons.
16
     LargeImageList
     Gets or sets the ImageList to use when displaying items as large icons in the control.
17
     MultiSelect
     Gets or sets a value indicating whether multiple items can be selected.
18
     RightToLeftLayout
     Gets or sets a value indicating whether the control is laid out from right to left.
19
     Scrollable
     Gets or sets a value indicating whether a scroll bar is added to the control when there is
     not enough room to display all items.
20
     SelectedIndices
     Gets the indexes of the selected items in the control.
21
     SelectedItems
                                      257
     Gets the items that are selected in the control.
22
     ShowGroups
     Gets or sets a value indicating whether items are displayed in groups.
23
     ShowItemToolTips
     Gets or sets a value indicating whether ToolTips are shown for the ListViewItem objects
     contained in theListView.
24
     SmallImageList
     Gets or sets the ImageList to use when displaying items as small icons in the control.
25
     Sorting
     Gets or sets the sort order for items in the control.
26
     StateImageList
     Gets or sets the ImageList associated with application-defined states in the control.
27
     TopItem
     Gets or sets the first visible item in the control.
28
     View
     Gets or sets how items are displayed in the control. This property has the following
     values:
29
     VirtualListSize
     Gets or sets the number of ListViewItem objects contained in the list when in virtual mode.
                                        258
30
        VirtualMode
        Gets or sets a value indicating whether you have provided your own data-management
        operations for the ListView control.
1
         Clear
         Removes all items from the ListView control.
1
         ToString
         Returns a string containing the string representation of the control.
1
         ColumnClick
         Occurs when a column header is clicked.
2
         ItemCheck
         Occurs when an item in the control is checked or unchecked.
3
         SelectedIndexChanged
         Occurs when the selected index is changed.
4
         TextChanged
         Occurs when the Text property is changed.
                                        259
Example
In this example, let us create a list view at runtime. Let's double click on the Form and put
the follow code in the opened window.
Public Class Form1
   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles
MyBase.Load
      'create a new ListView
      Dim ListView1 As ListView
      ListView1 = New ListView()
      ListView1.Location = New Point(10, 10)
      ListView1.Size = New Size(150, 150)
       Me.Controls.Add(ListView1)
       'Creating the list items
       Dim ListItem1 As ListViewItem
       ListItem1 = ListView1.Items.Add("Item 1")
      ListView1.View = View.SmallIcon
      ' Set the caption bar text of the form.
      Me.Text = "tutorialspoint.com"
   End Sub
End Class
When the above code is executed and run using Start button available at the Microsoft
Visual Studio tool bar, it will show the following window −
                                         260
                                            It represents a Windows list view control, which
  displays a collection of items that can be displayed using one of four different views.
 Previous Page
Next Page  
There are many built-in dialog boxes to be used in Windows forms for various tasks
like opening and saving files, printing a page, providing choices for colors, fonts, page
setup, etc., to the user of an application. These built-in dialog boxes reduce the
developer's time and workload.
All of these dialog box control classes inherit from the CommonDialog class and
override the RunDialog() function of the base class to create the specific dialog box.
The RunDialog() function is automatically invoked when a user of a dialog box calls
its ShowDialog() function.
The ShowDialog method is used to display all the dialog box controls at run-time. It
returns a value of the type of DialogResult enumeration. The values of DialogResult
enumeration are −
    Abort − returns DialogResult.Abort value, when user clicks an Abort button.
    Cancel − returns DialogResult.Cancel, when user clicks a Cancel button.
    Ignore − returns DialogResult.Ignore, when user clicks an Ignore button.
    No − returns DialogResult.No, when user clicks a No button.
    None − returns nothing and the dialog box continues running.
                                          261
     OK − returns DialogResult.OK, when user clicks an OK button
     Retry − returns DialogResult.Retry , when user clicks an Retry button
     Yes − returns DialogResult.Yes, when user clicks an Yes button
The following diagram shows the common dialog class inheritance −
All these above-mentioned classes have corresponding controls that could be added
from the Toolbox during design time. You can include relevant functionality of these
classes to your application, either by instantiating the class programmatically or by
using relevant controls.
When you double click any of the dialog controls in the toolbox or drag the control onto
the form, it appears in the Component tray at the bottom of the Windows Forms
Designer, they do not directly show up on the form.
The following table lists the commonly used dialog box controls. Click the following
links to check their detail −
1
                                   VB.Net - ColorDialog Control
           Previous Page
          Next Page  
The ColorDialog control class represents a common dialog box that displays available colo
                                          262
with controls that enable the user to define custom colors. It lets the user select a color.
The main property of the ColorDialog control is Color, which returns a Color object.
Following is the Color dialog box −
1
          AllowFullOpen
          Gets or sets a value indicating whether the user can use the dialog box to define
          colors.
2
          AnyColor
          Gets or sets a value indicating whether the dialog box displays all available color
          set of basic colors.
3
          CanRaiseEvents
                                 263
         Gets a value indicating whether the component can raise an event.
4
         Color
         Gets or sets the color selected by the user.
5
         CustomColors
         Gets or sets the set of custom colors shown in the dialog box.
6
         FullOpen
         Gets or sets a value indicating whether the controls used to create custom col
         visible when the dialog box is opened.
7
         ShowHelp
         Gets or sets a value indicating whether a Help button appears in the color dialog b
8
         SolidColorOnly
         Gets or sets a value indicating whether the dialog box will restrict users to selectin
         colors only.
1
         Reset
         Resets all options to their default values, the last selected color to black, and the
         colors to their default values.
2
         RunDialog
         When overridden in a derived class, specifies a common dialog box.
                                264
3
           ShowDialog
           Runs a common dialog box with a default owner.
1
           HelpRequest
           Occurs when the user clicks the Help button on a common dialog box.
Example
In this example, let's change the forecolor of a label control using the color dialog box. T
following steps −
       Drag and drop a label control, a button control and a ColorDialog control on the form.
       Set the Text property of the label and the button control to 'Give me a new Color' and
        Color', respectively.
       Change the font of the label as per your likings.
       Double-click the Change Color button and modify the code of the Click event.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles
Button1.Click
   If ColorDialog1.ShowDialog <> Windows.Forms.DialogResult.Cancel Then
      Label1.ForeColor = ColorDialog1.Color
   End If
End Sub
When the application is compiled and run using Start button available at the Microsoft Visu
tool bar, it will show the following window −
                                  265
    Clicking on the Change Color button, the color dialog appears, select a color and click
    button. The selected color will be applied as the forecolor of the text of the label.
    It represents a common dialog box that displays available colors along with controls that en
    user to define custom colors.
2
                             VB.Net - FontDialog Control
     Previous Page
    Next Page  
    It prompts the user to choose a font from among those installed on the local computer and
    user select the font, font size, and color. It returns the Font and Color objects.
    Following is the Font dialog box −
                                    266
By default, the Color ComboBox is not shown on the Font dialog box. You sho
the ShowColor property of the FontDialog control to be True.
1
         AllowSimulations
         Gets or sets a value indicating whether the dialog box allows graphics device in
         (GDI) font simulations.
2
         AllowVectorFonts
         Gets or sets a value indicating whether the dialog box allows vector font selections
3
         AllowVerticalFonts
         Gets or sets a value indicating whether the dialog box displays both vertic
         horizontal fonts, or only horizontal fonts.
                               267
4
     Color
     Gets or sets the selected font color.
5
     FixedPitchOnly
     Gets or sets a value indicating whether the dialog box allows only the selection o
     pitch fonts.
6
     Font
     Gets or sets the selected font.
7
     FontMustExist
     Gets or sets a value indicating whether the dialog box specifies an error conditio
     user attempts to select a font or style that does not exist.
8
     MaxSize
     Gets or sets the maximum point size a user can select.
9
     MinSize
     Gets or sets the minimum point size a user can select.
10
     ScriptsOnly
     Gets or sets a value indicating whether the dialog box allows selection of fonts for
     OEM and Symbol character sets, as well as the ANSI character set.
11
     ShowApply
     Gets or sets a value indicating whether the dialog box contains an Apply
     button.
12
     ShowColor
     Gets or sets a value indicating whether the dialog box displays the color choice.
                            268
13
             ShowEffects
             Gets or sets a value indicating whether the dialog box contains controls that al
             user to specify strikethrough, underline, and text color options.
14
             ShowHelp
             Gets or sets a value indicating whether the dialog box displays a Help button.
1
             Reset
             Resets all options to their default values.
2
             RunDialog
             When overridden in a derived class, specifies a common dialog box.
3
             ShowDialog
             Runs a common dialog box with a default owner.
1
                Apply
                Occurs when the Apply button on the font dialog box is clicked.
Example
In this example, let's change the font and color of the text from a rich text control using
dialog box. Take the following steps −
                                    269
      Drag and drop a RichTextBox control, a Button control and a FontDialog control on th
      Set the Text property of the button control to 'Change Font'.
      Set the ShowColor property of the FontDialog control to True.
      Double-click the Change Color button and modify the code of the Click event −
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles
Button1.Click
   If FontDialog1.ShowDialog <> Windows.Forms.DialogResult.Cancel Then
      RichTextBox1.ForeColor = FontDialog1.Color
      RichTextBox1.Font = FontDialog1.Font
   End If
End Sub
When the application is compiled and run using Start button available at the Microsoft Visu
tool bar, it will show the following window −
                                 270
    The Font dialog appears, select a font and a color and click the OK button. The selected
    color will be applied as the font and fore color of the text of the rich text box.
3
                         VB.Net - OpenFileDialog Control
     Previous Page
    Next Page  
    The OpenFileDialog control prompts the user to open a file and allows the user to select
    open. The user can check if the file exists and then open it. The OpenFileDialog cont
    inherits from the abstract class FileDialog.
    If the ShowReadOnly property is set to True, then a read-only check box appears in the dia
    You can also set the ReadOnlyChecked property to True, so that the read-only check box
    checked.
    Following is the Open File dialog box −
                                    271
Properties of the OpenFileDialog Control
The following are some of the commonly used properties of the OpenFileDialog control −
1
         AddExtension
         Gets or sets a value indicating whether the dialog box automatically adds an exten
         a file name if the user omits the extension.
2
         AutoUpgradeEnabled
         Gets or sets a value indicating whether this FileDialog instance should autom
         upgrade appearance and behavior when running on Windows Vista.
3
         CheckFileExists
         Gets or sets a value indicating whether the dialog box displays a warning if th
         specifies a file name that does not exist.
4
         CheckPathExists
                               272
273
274
275
    Click on the Load Image File button to load an image stored in your computer.
4
                           VB.Net - SaveFileDialog Control
     Previous Page
    Next Page  
    The SaveFileDialog control prompts the user to select a location for saving a file and al
    user to specify the name of the file to save data. The SaveFileDialog control class inherits
    abstract class FileDialog.
                                         276
Following is the Save File dialog box −
1
         AddExtension
         Gets or sets a value indicating whether the dialog box automatically adds an exten
         a file name if the user omits the extension.
2
         CheckFileExists
         Gets or sets a value indicating whether the dialog box displays a warning if th
         specifies a file name that does not exist.
3
         CheckPathExists
         Gets or sets a value indicating whether the dialog box displays a warning if th
                                277
278
279
Example
In this example, let's save the text entered into a rich text box by the user using the save fi
box. Take the following steps −
      Drag and drop a Label control, a RichTextBox control, a Button control and a SaveF
       control on the form.
      Set the Text property of the label and the button control to 'We appreciate your co
       and 'Save Comments', respectively.
      Double-click the Save Comments button and modify the code of the Click event as sh
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles
Button1.Click
   SaveFileDialog1.Filter = "TXT Files (*.txt*)|*.txt"
      If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK _
          Then
         My.Computer.FileSystem.WriteAllText _
         (SaveFileDialog1.FileName, RichTextBox1.Text, True)
      End If
End Sub
When the application is compiled and run using Start button available at the Microsoft Visu
tool bar, it will show the following window −
We have set the Filter property of the SaveFileDialog control to display text file types
extensions only.
Write some text in the text box and click on the Save Comment button to save the text as a
in your computer.
It prompts the user to select a location for saving a file and allows the user to specify the
the file to save data.
                                 280
5
                              VB.Net - PrintDialog Control
     Previous Page
    Next Page  
    The PrintDialog control lets the user to print documents by selecting a printer and choosin
    sections of the document to print from a Windows Forms application.
    There are various other controls related to printing of documents. Let us have a brief look
    controls and their purpose. These other controls are −
          The PrintDocument control − it provides support for actual events and operations o
           in Visual Basic and sets the properties for printing.
          The PrinterSettings control − it is used to configure how a document is printed by s
           the printer.
          The PageSetUpDialog control − it allows the user to specify page-related print
           including page orientation, paper size and margin size.
          The PrintPreviewControl control − it represents the raw preview part of print preview
           a Windows Forms application, without any dialog boxes or buttons.
          The PrintPreviewDialog control − it represents a dialog box form that con
           PrintPreviewControl for printing from a Windows Forms application.
    Following is the Print dialog box −
                                     281
Properties of the PrintDialog Control
The following are some of the commonly used properties of the PrintDialog control −
1
         AllowCurrentPage
         Gets or sets a value indicating whether the Current Page option button is displaye
2
         AllowPrintToFile
         Gets or sets a value indicating whether the Print to file check box is enabled.
3
         AllowSelection
         Gets or sets a value indicating whether the Selection option button is enabled.
                               282
4
         AllowSomePages
         Gets or sets a value indicating whether the Pages option button is enabled.
5
         Document
         Gets or sets a value indicating the PrintDocument used to obtain PrinterSettings.
6
         PrinterSettings
         Gets or sets the printer settings the dialog box modifies.
7
         PrintToFile
         Gets or sets a value indicating whether the Print to file check box is selected.
8
         ShowHelp
         Gets or sets a value indicating whether the Help button is displayed.
9
         ShowNetwork
         Gets or sets a value indicating whether the Network button is displayed.
1
         Reset
         Resets all options to their default values.
2
         RunDialog
         When overridden in a derived class, specifies a common dialog box.
3
         ShowDialog
                                283
          Runs a common dialog box with a default owner.
Example
In this example, let us see how to show a Print dialog box in a form. Take the following steps
      Add a PrintDocument control, a PrintDialog control and a Button control on the fo
       PrintDocument and the PrintDialog controls are found on the Print category of the
       toolbox.
      Change the text of the button to 'Print'.
      Double-click the Print button and modify the code of the Click event as shown −
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles
Button1.Click
   PrintDialog1.Document = PrintDocument1
   PrintDialog1.PrinterSettings = PrintDocument1.PrinterSettings
   PrintDialog1.AllowSomePages = True
When the application is compiled and run using Start button available at the Microsoft Visu
tool bar, it will show the following window −
Click the Print button to make the Print dialog box appear.
It lets the user to print documents by selecting a printer and choosing which section
document to print from a Windows Forms application.
                                  284
                      VB.Net - Advanced Form
                                           285
              Dim myMenuItemNew As New MenuItem("&New")
              Dim myMenuItemOpen As New MenuItem("&Open")
              Dim myMenuItemSave As New MenuItem("&Save")
       When the above code is executed and run using Start button available at the Microsoft
       Visual Studio tool bar, it will show the following window −
       Windows Forms contain a rich set of classes for creating your own custom menus with
       modern             appearance,                look              and            feel.
       The MenuStrip, ToolStripMenuItem, ContextMenuStrip controls are used to create
       menu bars and context menus efficiently.
       Click the following links to check their details −
Sr.N                                          Control & Description
 o.
1
                                VB.Net - MenuStrip Control
                                                    286
The MenuStrip control represents the container for the menu structure.
The MenuStrip control works as the top-level container for the menu structure. The
ToolStripMenuItem class and the ToolStripDropDownMenu class provide the
functionalities to create menu items, sub menus and drop-down menus.
The following diagram shows adding a MenuStrip control on the form −
1
         CanOverflow
         Gets or sets a value indicating whether the MenuStrip supports overflow functionality.
2
         GripStyle
                                       287
           Gets or sets the visibility of the grip used to reposition the control.
3
           MdiWindowListItem
           Gets or sets the ToolStripMenuItem that is used to display a list of Multiple-document
           interface (MDI) child forms.
4
           ShowItemToolTips
           Gets or sets a value indicating whether ToolTips are shown for the MenuStrip.
5
           Stretch
           Gets or sets a value indicating whether the MenuStrip stretches from end to end in its
           container.
1
             MenuActivate
             Occurs when the user accesses the menu with the keyboard or mouse.
2
             MenuDeactivate
             Occurs when the MenuStrip is deactivated.
Example
In this example, let us add menu and sub-menu items.
Take the following steps −
       Drag and drop or double click on a MenuStrip control, to add it to the form.
       Click the Type Here text to open a text box and enter the names of the menu items
        or sub-menu items you want. When you add a sub-menu, another text box with
        'Type Here' text opens below it.
       Complete the menu structure shown in the diagram above.
       Add a sub menu Exit under the File menu.
                                            288
      Double-Click the Exit menu created and add the following code to the Click event
       of ExitToolStripMenuItem −
Private Sub ExitToolStripMenuItem_Click(sender As Object, e As
EventArgs) _
   Handles ExitToolStripMenuItem.Click
   End
End Sub
When the above code is executed and run using Start button available at the Microsoft
Visual Studio tool bar, it will show the following window:
                                           289
                                          It provides a menu system for a form.
2
                    VB.Net - StripMenuItem Control
    The ToolStripMenuItem class supports the menus and menu items in a menu system.
    You handle these menu items through the click events in a menu system.
    1
             Checked
             Gets or sets a value indicating whether the ToolStripMenuItem is checked.
    2
             CheckOnClick
             Gets or sets a value indicating whether the ToolStripMenuItem should automatically
             appear checked and unchecked when clicked.
    3
             CheckState
             Gets or sets a value indicating whether a ToolStripMenuItem is in the checked,
             unchecked, or indeterminate state.
    4
             Enabled
                                           290
             Gets or sets a value indicating whether the control is enabled.
5
             IsMdiWindowListEntry
             Gets a value indicating whether the ToolStripMenuItem appears on a multiple document
             interface (MDI) window list.
6
             ShortcutKeyDisplayString
             Gets or sets the shortcut key text.
7
             ShortcutKeys
             Gets or sets the shortcut keys associated with the ToolStripMenuItem.
8
             ShowShortcutKeys
             Gets or sets a value indicating whether the shortcut keys that are associated with the
             ToolStripMenuItem are displayed next to the ToolStripMenuItem.
1
                CheckedChanged
                Occurs when the value of the Checked property changes.
2
                CheckStateChanged
                Occurs when the value of the CheckState property changes.
Example
In this example, let us continue with the example from the chapter 'VB.Net - MenuStrip
control'. Let us −
                                            291
      Set shortcut keys for menu items.
Hide and Display Menu Items
The Visible property of the ToolStripMenuItem class allows you to hide or show a menu
item. Let us hide the Project Menu on the menu bar.
      Add the following code snippet to the Form1_Load event −
Private Sub Form1_Load(sender As Object, e As EventArgs) _
Handles MyBase.Load
   ' Hide the project menu
   ProjectToolStripMenuItem1.Visible = False
   ' Set the caption bar text of the form.
   Me.Text = "tutorialspoint.com"
End Sub
When the above code is executed and run using Start button available at the Microsoft
Visual Studio tool bar, it will show the following window:
                                           292
Disable and Enable Menu Items
The Enabled property allows you to disable or gray out a menu item. Let us disable the
Project Menu on the menu bar.
      Add the following code snippet to the Form1_Load event −
Private Sub Form1_Load(sender As Object, e As EventArgs) _
Handles MyBase.Load
   ' Disable the project menu
   ProjectToolStripMenuItem1.Enabled = False
   ' Set the caption bar text of the form.
   Me.Text = "tutorialspoint.com"
End Sub
When the above code is executed and run using Start button available at the Microsoft
Visual Studio tool bar, it will show the following window −
                                          293
Clicking on the Enable Project button enables the project menu −
                                       294
Set Shortcut Keys for Menu Items
When you set a shortcut key for a menu item, user can press the shortcut from the
keyboard and it would result in occurrence of the Click event of the menu.
A shortcut key is set for a menu item using the ShortcutKeys property. For example, to set
a shortcut key CTRL + E, for the Edit menu −
      Select the Edit menu item and select its ShortcutKeys property in the properties
       window.
      Click the drop down button next to it.
      Select Ctrl as Modifier and E as the key.
                                          295
    on a MenuStrip or ContextMenuStrip. The ToolStripMenuItem control replaces and adds
    functionality to the MenuItem control of previous versions.
3
                     VB.Net - ContextMenuStrip Control
     Previous Page
    Next Page  
    The ContextMenuStrip control represents a shortcut menu that pops up over controls,
    usually when you right click them. They appear in context of some specific controls, so are
    called context menus. For example, Cut, Copy or Paste options.
    This control associates the context menu with other menu items by setting that menu
    item's ContextMenuStrip property to the ContextMenuStrip control you designed.
    Context menu items can also be disabled, hidden or deleted. You can also show a context
    menu with the help of the Show method of the ContextMenuStrip control.
    The following diagram shows adding a ContextMenuStrip control on the form −
                                            296
 Sr.No                                       Property & Description
    .
1
           SourceControl
           Gets the last control that displayed the ContextMenuStrip control.
Example
In this example, let us add a content menu with the menu items Cut, Copy and Paste.
Take the following steps −
       Drag and drop or double click on a ControlMenuStrip control to add it to the form.
       Add the menu items, Cut, Copy and Paste to it.
       Add a RichTextBox control on the form.
       Set the ContextMenuStrip property of the rich text box to ContextMenuStrip1 using
        the properties window.
       Double the menu items and add following codes in the Click event of these menus −
Private Sub CutToolStripMenuItem_Click(sender As Object, e As
EventArgs) _
Handles CutToolStripMenuItem.Click
   RichTextBox1.Cut()
End Sub
When the above code is executed and run using Start button available at the Microsoft
Visual Studio tool bar, it will show the following window −
                                          297
 Enter some text in the rich text box, select it and right-click to get the context menu appear
 −
 Now, you can select any menu items and perform cut, copy or paste on the text box.
 It represents a shortcut menu.
                                          298
1
    Clear
    Removes all data from the Clipboard.
2
    ContainsData
    Indicates whether there is data on the Clipboard that is in the specified format or can be
    converted to that format.
3
    ContainsImage
    Indicates whether there is data on the Clipboard that is in the Bitmap format or can be
    converted to that format.
4
    ContainsText
    Indicates whether there is data on the Clipboard in the Text or UnicodeText format,
    depending on the operating system.
5
    GetData
    Retrieves data from the Clipboard in the specified format.
6
    GetDataObject
    Retrieves the data that is currently on the system Clipboard.
7
    GetImage
    Retrieves an image from the Clipboard.
8
    GetText
    Retrieves text data from the Clipboard in the Text or UnicodeText format, depending on
    the operating system.
9
    GetText(TextDataFormat)
    Retrieves text data from the Clipboard in the format indicated by the specified
    TextDataFormat value.
                                     299
10
            SetData
            Clears the Clipboard and then adds data in the specified format.
11
            SetText(String)
            Clears the Clipboard and then adds text data in the Text or UnicodeText format,
            depending on the operating system.
Following is an example, which shows how we cut, copy and paste data using methods
of the Clipboard class. Take the following steps −
        Add a rich text box control and three button controls on the form.
        Change the text property of the buttons to Cut, Copy and Paste, respectively.
        Double click on the buttons to add the following code in the code editor −
Public Class Form1
   Private Sub Form1_Load(sender As Object, e As EventArgs) _
    Handles MyBase.Load
      ' Set the caption bar text of the form.
      Me.Text = "tutorialspoint.com"
   End Sub
                                             300
When the above code is executed and run using Start button available at the Microsoft
Visual Studio tool bar, it will show the following window −
                                          301
For example, let us add a Button control on a form and set its anchor property to
Bottom, Right. Run this form to see the original position of the Button control with
respect to the form.
Now, when you stretch the form, the distance between the Button and the bottom right
corner of the form remains same.
                                        302
Docking of a control means docking it to one of the edges of its container. In docking,
the control fills certain area of the container completely.
The Dock property of the Control class does this. The Dock property gets or sets which
control borders are docked to its parent control and determines how a control is resized
with its parent.
You can set the Dock property values of a control from the Properties window −
For example, let us add a Button control on a form and set its Dock property to Bottom.
Run this form to see the original position of the Button control with respect to the form.
                                           303
Now, when you stretch the form, the Button resizes itself with the form.
Modal Forms
Modal Forms are those forms that need to be closed or hidden before you can
continue working with the rest of the application. All dialog boxes are modal forms. A
MessageBox is also a modal form.
You can call a modal form by two ways −
      Calling the ShowDialog method
      Calling the Show method
Let us take up an example in which we will create a modal form, a dialog box. Take the
following steps −
      Add a form, Form1 to your application, and add two labels and a button control
       to Form1
      Change the text properties of the first label and the button to 'Welcome to
       Tutorials Point' and 'Enter your Name', respectively. Keep the text properties of
       the second label as blank.
                                          304
      Add a new Windows Form, Form2, and add two buttons, one label, and a text
       box to Form2.
      Change the text properties of the buttons to OK and Cancel, respectively.
       Change the text properties of the label to 'Enter your name:'.
      Set the FormBorderStyle property of Form2 to FixedDialog, for giving it a dialog
       box border.
      Set the ControlBox property of Form2 to False.
      Set the ShowInTaskbar property of Form2 to False.
      Set the DialogResult property of the OK button to OK and the Cancel button to
       Cancel.
                                          305
End Sub
When the above code is executed and run using Start button available at the Microsoft
Visual Studio tool bar, it will show the following window −
Clicking on the 'Enter your Name' button displays the second form −
Clicking on the OK button takes the control and information back from the modal form
to the previous form −
                                         306
                      VB.Net - Event Handling
 Previous Page
Next Page  
Events are basically a user action like key press, clicks, mouse movements, etc., or
some occurrence like system generated notifications. Applications need to respond to
events when they occur.
Clicking on a button, or entering some text in a text box, or clicking on a menu item, all
are examples of events. An event is an action that calls a function or may cause
another event. Event handlers are functions that tell how to respond to an event.
VB.Net is an event-driven language. There are mainly two types of events −
      Mouse events
      Keyboard events
                                           307
      MouseUp − it occurs when the mouse pointer is over the control and the mouse
       button is released
      MouseWheel − it occurs when the mouse wheel moves and the control has
       focus
The event handlers of the mouse events get an argument of type MouseEventArgs.
The MouseEventArgs object is used for handling mouse events. It has the following
properties −
      Buttons − indicates the mouse button pressed
      Clicks − indicates the number of clicks
      Delta − indicates the number of detents the mouse wheel rotated
      X − indicates the x-coordinate of mouse click
      Y − indicates the y-coordinate of mouse click
Example
Following is an example, which shows how to handle mouse events. Take the following
steps −
      Add three labels, three text boxes and a button control in the form.
      Change the text properties of the labels to - Customer ID, Name and Address,
       respectively.
      Change the name properties of the text boxes to txtID, txtName and txtAddress,
       respectively.
      Change the text property of the button to 'Submit'.
      Add the following code in the code editor window −
Public Class Form1
   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles
MyBase.Load
      ' Set the caption bar text of the form.
      Me.Text = "tutorialspont.com"
   End Sub
                                           308
       txtID.ForeColor = Color.Blue
    End Sub
When the above code is executed and run using Start button available at the Microsoft
Visual Studio tool bar, it will show the following window −
                                         309
Try to enter text in the text boxes and check the mouse events −
Example
Let us continue with the previous example to show how to handle keyboard events.
The code will verify that the user enters some numbers for his customer ID and age.
      Add a label with text Property as 'Age' and add a corresponding text box named
       txtAge.
      Add the following codes for handling the KeyUP events of the text box txtID.
Private Sub txtID_KeyUP(sender As Object, e As KeyEventArgs) _
   Handles txtID.KeyUp
      Add the following codes for handling the KeyUP events of the text box txtID.
Private Sub txtAge_KeyUP(sender As Object, e As KeyEventArgs) _
   Handles txtAge.KeyUp
When the above code is executed and run using Start button available at the Microsoft
Visual Studio tool bar, it will show the following window −
                                             311
If you leave the text for age or ID as blank or enter some non-numeric data, it gives a
warning message box and clears the respective text −
                                          312
Constructs for Defining Regular Expressions
There are various categories of characters, operators, and constructs that lets you to
define regular expressions. Click the following links to find these constructs.
 Previous Page
Next Page  
These are basically the special characters or escape characters. The backslash
character (\) in a regular expression indicates that the character that follows it either is
a special character or should be interpreted literally.
The following table lists the escape characters −
                                                313
                                                                                         "\r\Hello\nWorld."
\ nnn         Uses octal representation to specify a character     \w\040\w              "a b", "c d" in "a bc d"
              (nnn consists of up to three digits).
\x nn         Uses hexadecimal representation to specify a         \w\x20\w              "a b", "c d" in "a bc d"
              character (nn consists of exactly two digits).
\c X\c x      Matches the ASCII control character that is          \cC                   "\x0003" in "\x0003"
              specified by X or x, where X or x is the letter of                         (Ctrl-C)
              the control character.
\u nnnn       Matches a Unicode character by using                 \w\u0020\w            "a b", "c d" in "a bc d"
              hexadecimal representation (exactly four digits,
              as represented by nnnn).
[character_group]        Matches any single character in character_group.       [mn]        "m" in "mat" "m", "n"
                         By default, the match is case-sensitive.                           in "moon"
[^character_group        Negation: Matches any single character that is not     [^aei]      "v", "l" in "avail"
]                        in character_group. By default, characters
                         incharacter_group are case-sensitive.
                                                314
[ first - last ]    Character range: Matches any single character in    (\w+)\t   "Name\t", "Addr\t" in
                    the range from first to last.                                 "Name\tAddr\t"
.                   Wildcard: Matches any single character except \n.   a.e       "ave" in "have" "ate"
                                                                                  in "mate"
\p{ name }          Matches any single character in the Unicode         \p{Lu}    "C", "L" in "City
                    general category or named block specified                     Lights"
                    by name.
\P{ name }          Matches any single character that is not in the     \P{Lu}    "i", "t", "y" in "City"
                    Unicode general category or named block
                    specified by name.
\D                  Matches any character other than a decimal digit.   \D        " ", "=", " ", "I", "V" in
                                                                                  "4 = IV"
                           VB.Net - Anchors
Anchors allow a match to succeed or fail depending on the current position in the
string. The following table lists the anchors −
                                          315
 Assertio                        Description                            Pattern              Matches
    n
^            The match must start at the beginning of the string      ^\d{3}       "567" in "567-777-"
             or line.
$            The match must occur at the end of the string or         -\d{4}$      "-2012" in "8-12-2012"
             before \n at the end of the line or string.
\A The match must occur at the start of the string. \A\w{3} "Code" in "Code-007-"
\Z           The match must occur at the end of the string or         -\d{3}\Z     "-007" in "Bond-901-007"
             before \n at the end of the string.
\z The match must occur at the end of the string. -\d{3}\z "-333" in "-901-333"
\G           The match must occur at the point, where the             \\G\(\d\)    "(1)", "(3)", "(5)" in "(1)(3)
             previous match ended.                                                 (5)[7](9)"
\b           The match must occur on a boundary between a \w          \w           "R", "o", "m" and "1" in
             (alphanumeric) and a \W (non-alphanumeric)                            "Room#1"
             character.
\B           The match must not occur on a \b boundary.               \Bend\w*\b   "ends", "ender" in "end
                                                                                   sends endure lender"
                                               316
                       subexpression and
                       assigns it a zero-
                       based ordinal
                       number.
                                         317
                          "greedy")                                                  "5AB" in "1ABB
                          subexpression.                                             3ABBC 5AB 5AC"
                           VB.Net - Quantifiers
Quantifiers specify how many instances of the previous element (which can be a
character, a group, or a character class) must be present in the input string for a match
to occur.
+            Matches the previous element one or         "be+"       "bee" in "been", "be" in "bent"
             more times.
{n}          Matches the previous element exactly n      ",\d{3}"    ",043" in "1,043.6", ",876", ",543",
             times.                                                  and ",210" in "9,876,543,210"
{n,m}        Matches the previous element at least n     "\d{3,5}"   "166", "17668" "19302" in "193024"
             times, but no more than m times.
+?           Matches the previous element one or         "be+?"      "be" in "been", "be" in "bent"
             more times, but as few times as possible.
                                            318
??             Matches the previous element zero or one     "rai??n"     "ran", "rain"
               time, but as few times as possible.
{ n }?         Matches the preceding element exactly n      ",\d{3}?"    ",043" in "1,043.6", ",876", ",543",
               times.                                                    and ",210" in "9,876,543,210"
{ n ,}?        Matches the previous element at least n      "\d{2,}?"    "166", "29", "1930"
               times, but as few times as possible.
{ n , m }?     Matches the previous element between n       "\d{3,5}?"   "166", "17668" "193", "024" in
               and m times, but as few times as possible.                "193024"
\k< name >         Named backreference. Matches the value of a               (?< char>\w)\k<      "ee" in
                   named expression.                                         char>                "seek"
                                              319
|                Matches any one element                  th(e|is|at)                           "the", "this" in "this
                 separated by the vertical bar (|)                                              is the day. "
                 character.
                           VB.Net - Substitutions
Substitutions are used in replacement patterns. The following table lists the
substitutions −
${name}      Substitutes the         \b(?< word1>\w+)          ${word2} $       "one two"          "two one"
             substring matched       (\s)(?<                   {word1}
             by the                  word2>\w+)\b
             named groupname.
                                                320
        $`             Substitutes all the    B+                    $`               "AABBCC"        "AAAACC"
                       text of the input
                       string before the
                       match.
        (?imnsx-            Sets or disables options such as case insensitivity   \bA(?i)b\w+\b matches "ABA", "Able"
        imnsx)              in the middle of a pattern.                           in "ABA Able Act"
        (?#comment)         In-line comment. The comment ends at the first        \bA(?#Matches words starting with
                            closing parenthesis.                                  A)\w+\b
        # [to end of        X-mode comment. The comment starts at an              (?x)\bA\w+\b#Matches words starting
        line]               unescaped # and continues to the end of the line.     with A
                                                        321
    .
1
          Public Function IsMatch (input As String) As Boolean
          Indicates whether the regular expression specified in the Regex constructor finds a match
          in a specified input string.
2
          Public Function IsMatch (input As String, startat As Integer ) As Boolean
          Indicates whether the regular expression specified in the Regex constructor finds a match
          in the specified input string, beginning at the specified starting position in the string.
3
          Public Shared Function IsMatch (input As String, pattern As String ) As Boolean
          Indicates whether the specified regular expression finds a match in the specified input
          string.
4
          Public Function Matches (input As String) As MatchCollection
          Searches the specified input string for all occurrences of a regular expression.
5
          Public Function Replace (input As String, replacement As String) As String
          In a specified input string, replaces all strings that match a regular expression pattern with
          a specified replacement string.
6
          Public Function Split (input As String) As String()
          Splits an input string into an array of substrings at the positions defined by a regular
          expression pattern specified in the Regex constructor.
        For the complete list of methods and properties, please consult Microsoft
        documentation.
        Example 1
        The following example matches words that start with 'S' −
                                                                                        Live Demo
        Imports System.Text.RegularExpressions
        Module regexProg
           Sub showMatch(ByVal text As String, ByVal expr As String)
              Console.WriteLine("The Expression: " + expr)
              Dim mc As MatchCollection = Regex.Matches(text, expr)
              Dim m As Match
               For Each m In mc
                  Console.WriteLine(m)
               Next m
                                                   322
   End Sub
   Sub Main()
      Dim str As String = "A Thousand Splendid Suns"
      Console.WriteLine("Matching words that start with 'S': ")
      showMatch(str, "\bS\S*")
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
Matching words that start with 'S':
The Expression: \bS\S*
Splendid
Suns
Example 2
The following example matches words that start with 'm' and ends with 'e' −
                                                                              Live Demo
Imports System.Text.RegularExpressions
Module regexProg
   Sub showMatch(ByVal text As String, ByVal expr As String)
      Console.WriteLine("The Expression: " + expr)
      Dim mc As MatchCollection = Regex.Matches(text, expr)
      Dim m As Match
      For Each m In mc
         Console.WriteLine(m)
      Next m
   End Sub
   Sub Main()
      Dim str As String = "make a maze and manage to measure it"
      Console.WriteLine("Matching words that start with 'm' and
ends with 'e': ")
      showMatch(str, "\bm\S*e\b")
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
Matching words start with 'm' and ends with 'e':
The Expression: \bm\S*e\b
make
maze
manage
measure
                                          323
Example 3
This example replaces extra white space −
                                                                              Live Demo
Imports System.Text.RegularExpressions
Module regexProg
   Sub Main()
      Dim input As String = "Hello     World  "
      Dim pattern As String = "\\s+"
      Dim replacement As String = " "
      Dim rgx As Regex = New Regex(pattern)
      Dim result As String = rgx.Replace(input, replacement)
When the above code is compiled and executed, it produces the following result −
Original String: Hello   World
Replacement String: Hello World
 Previous Page
Next Page  
Applications communicate with a database, firstly, to retrieve the data stored there and
present it in a user-friendly way, and secondly, to update the database by inserting,
modifying and deleting data.
Microsoft ActiveX Data Objects.Net (ADO.Net) is a model, a part of the .Net framework
that is used by the .Net applications for retrieving, accessing and updating data.
                                          324
The data residing in a data store or database is retrieved through the  data provider.
Various components of the data provider retrieve data for the application and update
data.
An application accesses data either through a dataset or a data reader.
       Datasets store data in a disconnected cache and the application retrieves data
        from it.
       Data readers provide data to the application in a read-only and forward-only
        mode.
Data Provider
A data provider is used for connecting to a database, executing commands and
retrieving data, storing it in a dataset, reading the retrieved data and updating the
database.
The data provider in ADO.Net consists of the following four objects −
1
           Connection
           This component is used to set up a connection with a data source.
2
           Command
           A command is a SQL statement or a stored procedure used to retrieve, insert, delete or
                                           325
           modify data in a data source.
3
           DataReader
           Data reader is used to retrieve data from a data source in a read-only and forward-only
           mode.
4
           DataAdapter
           This is integral to the working of ADO.Net since data is transferred to and from a
           database through a data adapter. It retrieves data from a database into a dataset and
           updates the database. When changes are made to the dataset, the changes in the
           database are actually done by the data adapter.
DataSet
DataSet is an in-memory representation of data. It is a disconnected, cached set of
records that are retrieved from a database. When a connection is established with the
database, the data adapter creates a dataset and stores data in it. After the data is
retrieved and stored in a dataset, the connection with the database is closed. This is
called the 'disconnected architecture'. The dataset works as a virtual database
containing tables, rows, and columns.
The following diagram shows the dataset object model −
                                           326
The DataSet class is present in the System.Data namespace. The following table
describes all the components of DataSet −
1
        DataTableCollection
        It contains all the tables retrieved from the data source.
2
        DataRelationCollection
        It contains relationships and the links between tables in a data set.
3
        ExtendedProperties
        It contains additional information, like the SQL statement for retrieving data, time of
        retrieval, etc.
4
        DataTable
        It represents a table in the DataTableCollection of a dataset. It consists of the DataRow
        and DataColumn objects. The DataTable objects are case-sensitive.
                                          327
5
           DataRelation
           It represents a relationship in the DataRelationshipCollection of the dataset. It is used to
           relate two DataTable objects to each other through the DataColumn objects.
6
           DataRowCollection
           It contains all the rows in a DataTable.
7
           DataView
           It represents a fixed customized view of a DataTable for sorting, filtering, searching,
           editing and navigation.
8
           PrimaryKey
           It represents the column that uniquely identifies a row in a DataTable.
9
           DataRow
           It represents a row in the DataTable. The DataRow object and its properties and methods
           are used to retrieve, evaluate, insert, delete, and update values in the DataTable. The
           NewRow method is used to create a new row and the Add method adds a row to the
           table.
10
           DataColumnCollection
           It represents all the columns in a DataTable.
11
           DataColumn
           It consists of the number of columns that comprise a DataTable.
Connecting to a Database
The .Net Framework provides two types of Connection classes −
        SqlConnection − designed for connecting to Microsoft SQL Server.
        OleDbConnection − designed for connecting to a wide range of databases, like
         Microsoft Access and Oracle.
                                             328
Example 1
We have a table stored in Microsoft SQL Server, named Customers, in a database
named testDB. Please consult 'SQL Server' tutorial for creating databases and
database tables in SQL Server.
Let us connect to this database. Take the following steps −
      Select TOOLS → Connect to Database
 Select a server name and the database name in the Add Connection dialog box.
                                          329
   Click on the Test Connection button to check if the connection succeeded.
                                       330
   Add a DataGridView on the form.
                                       331
   Choose DataSet as the database model.
                                      332
   Save the connection string.
   Choose the database object, Customers table in our example, and click the
    Finish button.
                                    333
      Select the Preview Data link to see the data in the Results grid −
When the application is run using Start button available at the Microsoft Visual Studio
tool bar, it will show the following window −
                                           334
Example 2
In this example, let us access data in a DataGridView control using code. Take the
following steps −
      Add a DataGridView control and a button in the form.
      Change the text of the button control to 'Fill'.
      Double click the button control to add the required code for the Click event of the
       button, as shown below −
Imports System.Data.SqlClient
Public Class Form1
   Private Sub Form1_Load(sender As Object, e As EventArgs) _
   Handles MyBase.Load
      'TODO: This line of code loads data into the
'TestDBDataSet.CUSTOMERS' table.
      You can move, or remove it, as needed.
      Me.CUSTOMERSTableAdapter.Fill(Me.TestDBDataSet.CUSTOMERS)
      ' Set the caption bar text of the form.
      Me.Text = "tutorialspoint.com"
   End Sub
                                             335
      Dim ds As DataSet = New DataSet()
      adp.Fill(ds)
      DataGridView1.DataSource = ds.Tables(0)
   End Sub
End Class
     When the above code is executed and run using Start button available at the
      Microsoft Visual Studio tool bar, it will show the following window −
 Clicking the Fill button displays the table on the data grid view control −
                                           336
Creating Table, Columns and Rows
We have discussed that the DataSet components like DataTable, DataColumn and
DataRow allow us to create tables, columns and rows, respectively.
The following example demonstrates the concept −
Example 3
So far, we have used tables and databases already existing in our computer. In this
example, we will create a table, add columns, rows and data into it and display the
table using a DataGridView object.
Take the following steps −
      Add a DataGridView control and a button in the form.
      Change the text of the button control to 'Fill'.
      Add the following code in the code editor.
Public Class Form1
   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles
MyBase.Load
      ' Set the caption bar text of the form.
      Me.Text = "tutorialspont.com"
   End Sub
                                             337
   End Function
     When the above code is executed and run using Start button available at the
      Microsoft Visual Studio tool bar, it will show the following window −
 Clicking the Fill button displays the table on the data grid view control −
                                           338
                         VB.Net - Excel Sheet
 Previous Page
Next Page  
VB.Net provides support for interoperability between the COM object model of
Microsoft Excel 2010 and your application.
To avail this interoperability in your application, you need to import the
namespace Microsoft.Office.Interop.Excel in your Windows Form Application.
                                           339
      On the COM tab, locate Microsoft Excel Object Library and then click Select.
      Click OK.
Double click the code window and populate the Click event of Button1, as shown
below.
' Add the following code snippet on top of Form1.vb
Imports Excel = Microsoft.Office.Interop.Excel
                                          340
Public Class Form1
   Private Sub Button1_Click(sender As Object, e As EventArgs)
Handles Button1.Click
      Dim appXL As Excel.Application
      Dim wbXl As Excel.Workbook
      Dim shXL As Excel.Worksheet
      Dim raXL As Excel.Range
      ' Fill A2:B6 with an array of values (First and Last Names).
      shXL.Range("A2", "B6").Value = students
      ' Fill C2:C6 with a relative formula (=A2 & " " & B2).
      raXL = shXL.Range("C2", "C6")
      raXL.Formula = "=A2 & "" "" & B2"
                                   341
          .Cells(2,    4).Value    =   "Biology"
          .Cells(3,    4).Value    =   "Mathmematics"
          .Cells(4,    4).Value    =   "Physics"
          .Cells(5,    4).Value    =   "Mathmematics"
          .Cells(6,    4).Value    =   "Arabic"
       End With
       ' Make sure Excel is visible and give the user control
       ' of Excel's lifetime.
       appXL.Visible = True
       appXL.UserControl = True
When the above code is executed and run using Start button available at the Microsoft
Visual Studio tool bar, it will show the following window −
                                         342
Clicking on the Button would display the following excel sheet. You will be asked to
save the workbook.
 Previous Page
Next Page  
 1
          Attachment
          Represents an attachment to an e-mail.
 2
          AttachmentCollection
          Stores attachments to be sent as part of an e-mail message.
 3
          MailAddress
          Represents the address of an electronic mail sender or recipient.
                                          343
4
         MailAddressCollection
         Stores e-mail addresses that are associated with an e-mail message.
5
         MailMessage
         Represents an e-mail message that can be sent using the SmtpClient class.
6
         SmtpClient
         Allows applications to send e-mail by using the Simple Mail Transfer Protocol (SMTP).
7
         SmtpException
         Represents the exception that is thrown when the SmtpClient is not able to complete a
         Send or SendAsync operation.
1
         ClientCertificates
         Specifies which certificates should be used to establish the Secure Sockets Layer (SSL)
         connection.
2
         Credentials
         Gets or sets the credentials used to authenticate the sender.
3
         EnableSsl
         Specifies whether the SmtpClient uses Secure Sockets Layer (SSL) to encrypt the
         connection.
4
         Host
                                         344
        Gets or sets the name or IP address of the host used for SMTP transactions.
5
        Port
        Gets or sets the port used for SMTP transactions.
6
        Timeout
        Gets or sets a value that specifies the amount of time after which a synchronous Send
        call times out.
7
        UseDefaultCredentials
        Gets or sets a Boolean value that controls whether the DefaultCredentials are sent with
        requests.
1
        Dispose
        Sends a QUIT message to the SMTP server, gracefully ends the TCP connection, and
        releases all resources used by the current instance of the SmtpClient class.
2
        Dispose(Boolean)
        Sends a QUIT message to the SMTP server, gracefully ends the TCP connection,
        releases all resources used by the current instance of the SmtpClient class, and
        optionally disposes of the managed resources.
3
        OnSendCompleted
        Raises the SendCompleted event.
4
        Send(MailMessage)
        Sends the specified message to an SMTP server for delivery.
                                        345
5
            Send(String, String, String, String)
            Sends the specified e-mail message to an SMTP server for delivery. The message
            sender, recipients, subject, and message body are specified using String objects.
6
            SendAsync(MailMessage, Object)
            Sends the specified e-mail message to an SMTP server for delivery. This method does
            not block the calling thread and allows the caller to pass an object to the method that is
            invoked when the operation completes.
7
            SendAsync(String, String, String, String, Object)
            Sends an e-mail message to an SMTP server for delivery. The message sender,
            recipients, subject, and message body are specified using String objects. This method
            does not block the calling thread and allows the caller to pass an object to the method
            that is invoked when the operation completes.
8
            SendAsyncCancel
            Cancels an asynchronous operation to send an e-mail message.
9
            SendMailAsync(MailMessage)
            Sends the specified message to an SMTP server for delivery as an asynchronous
            operation.
10
            SendMailAsync(String, String, String, String)
            Sends the specified message to an SMTP server for delivery as an asynchronous
            operation. . The message sender, recipients, subject, and message body are specified
            using String objects.
11
            ToString
            Returns a string that represents the current object.
The following example demonstrates how to send mail using the SmtpClient class.
Following points are to be noted in this respect −
        You must specify the SMTP host server that you use to send e-mail.
         The Host and Port properties will be different for different host server. We will
         be using gmail server.
                                             346
      You need to give the Credentials for authentication, if required by the SMTP
       server.
      You should also provide the email address of the sender and the e-mail address
       or         addresses          of          the         recipients         using
       the MailMessage.From and MailMessage.To properties, respectively.
      You     should   also    specify          the     message       content   using
       the MailMessage.Body property.
Example
In this example, let us create a simple application that would send an e-mail. Take the
following steps −
      Add three labels, three text boxes and a button control in the form.
      Change the text properties of the labels to - 'From', 'To:' and 'Message:'
       respectively.
      Change the name properties of the texts to txtFrom, txtTo and txtMessage
       respectively.
      Change the text property of the button control to 'Send'
      Add the following code in the code editor.
Imports System.Net.Mail
Public Class Form1
   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles
MyBase.Load
      ' Set the caption bar text of the form.
      Me.Text = "tutorialspoint.com"
   End Sub
                                           347
              e_mail.Body = txtMessage.Text
              Smtp_Server.Send(e_mail)
              MsgBox("Mail Sent")
      You must provide your gmail address and real password for credentials.
      When the above code is executed and run using Start button available at the
       Microsoft Visual Studio tool bar, it will show the following window, which you will
       use to send your e-mails, try it yourself.
 Previous Page
Next Page  
The Extensible Markup Language (XML) is a markup language much like HTML or
SGML. This is recommended by the World Wide Web Consortium and available as an
open standard.
The System.Xml namespace in the .Net Framework contains classes for processing
XML documents. Following are some of the commonly used classes in the System.Xml
namespace.
                                           348
1
    XmlAttribute
    Represents an attribute. Valid and default values for the attribute are defined in a
    document type definition (DTD) or schema.
2
    XmlCDataSection
    Represents a CDATA section.
3
    XmlCharacterData
    Provides text manipulation methods that are used by several classes.
4
    XmlComment
    Represents the content of an XML comment.
5
    XmlConvert
    Encodes and decodes XML names and provides methods for converting between
    common language runtime types and XML Schema definition language (XSD) types.
    When converting data types, the values returned are locale independent.
6
    XmlDeclaration
    Represents the XML declaration node <?xml version='1.0'...?>.
7
    XmlDictionary
    Implements a dictionary used to optimize Windows Communication Foundation (WCF)'s
    XML reader/writer implementations.
8
    XmlDictionaryReader
    An abstract class that the Windows Communication Foundation (WCF) derives from
    XmlReader to do serialization and deserialization.
9
    XmlDictionaryWriter
    Represents an abstract class that Windows Communication Foundation (WCF) derives
    from XmlWriter to do serialization and deserialization.
                                   349
10
     XmlDocument
     Represents an XML document.
11
     XmlDocumentFragment
     Represents a lightweight object that is useful for tree insert operations.
12
     XmlDocumentType
     Represents the document type declaration.
13
     XmlElement
     Represents an element.
14
     XmlEntity
     Represents an entity declaration, such as <!ENTITY... >.
15
     XmlEntityReference
     Represents an entity reference node.
16
     XmlException
     Returns detailed information about the last exception.
17
     XmlImplementation
     Defines the context for a set of XmlDocument objects.
18
     XmlLinkedNode
     Gets the node immediately preceding or following this node.
19
     XmlNode
     Represents a single node in the XML document.
20
     XmlNodeList
                                       350
     Represents an ordered collection of nodes.
21
     XmlNodeReader
     Represents a reader that provides fast, non-cached forward only access to XML data in
     an XmlNode.
22
     XmlNotation
     Represents a notation declaration, such as <!NOTATION... >.
23
     XmlParserContext
     Provides all the context information required by the XmlReader to parse an XML
     fragment.
24
     XmlProcessingInstruction
     Represents a processing instruction, which XML defines to keep processor-specific
     information in the text of the document.
25
     XmlQualifiedName
     Represents an XML qualified name.
26
     XmlReader
     Represents a reader that provides fast, noncached, forward-only access to XML data.
27
     XmlReaderSettings
     Specifies a set of features to support on the XmlReader object created by the Create
     method.
28
     XmlResolver
     Resolves external XML resources named by a Uniform Resource Identifier (URI).
29
     XmlSecureResolver
     Helps to secure another implementation of XmlResolver by wrapping the XmlResolver
                                    351
     object and restricting the resources that the underlying XmlResolver has access to.
30
     XmlSignificantWhitespace
     Represents white space between markup in a mixed content node or white space within
     an xml:space= 'preserve' scope. This is also referred to as significant white space.
31
     XmlText
     Represents the text content of an element or attribute.
32
     XmlTextReader
     Represents a reader that provides fast, non-cached, forward-only access to XML data.
33
     XmlTextWriter
     Represents a writer that provides a fast, non-cached, forward-only way of generating
     streams or files containing XML data that conforms to the W3C Extensible Markup
     Language (XML) 1.0 and the Namespaces in XML recommendations.
34
     XmlUrlResolver
     Resolves external XML resources named by a Uniform Resource Identifier (URI).
35
     XmlWhitespace
     Represents white space in element content.
36
     XmlWriter
     Represents a writer that provides a fast, non-cached, forward-only means of generating
     streams or files containing XML data.
37
     XmlWriterSettings
     Specifies a set of features to support on the XmlWriter object created by the
     XmlWriter.Create method.
                                      352
XML Parser APIs
The two most basic and broadly used APIs to XML data are the SAX and DOM
interfaces.
      Simple API for XML (SAX) − Here, you register callbacks for events of interest
       and then let the parser proceed through the document. This is useful when your
       documents are large or you have memory limitations, it parses the file as it
       reads it from disk, and the entire file is never stored in memory.
      Document Object Model (DOM) API − This is World Wide Web Consortium
       recommendation wherein the entire file is read into memory and stored in a
       hierarchical (tree-based) form to represent all the features of an XML document.
SAX obviously can't process information as fast as DOM can when working with large
files. On the other hand, using DOM exclusively can really kill your resources,
especially if used on a lot of small files.
SAX is read-only, while DOM allows changes to the XML file. Since these two different
APIs literally complement each other there is no reason why you can't use them both
for large projects.
For all our XML code examples, let's use a simple XML file movies.xml as an input −
<?xml version = "1.0"?>
                                          353
      <stars>10</stars>
      <description>Vash the Stampede!</description>
   </movie>
Example 1
This example demonstrates reading XML data from the file movies.xml.
Take the following steps −
      Add the movies.xml file in the bin\Debug folder of your application.
      Import the System.Xml namespace in Form1.vb file.
      Add a label in the form and change its text to 'Movies Galore'.
      Add three list boxes and three buttons to show the title, type and description of a
       movie from the xml file.
      Add the following code using the code editor window.
Imports System.Xml
Public Class Form1
   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles
MyBase.Load
      ' Set the caption bar text of the form.
      Me.Text = "tutorialspoint.com"
   End Sub
                                           354
            ListBox1.Items.Add(xr.GetAttribute(0))
         End If
      Loop
   End Sub
Execute and run the above code using Start button available at the Microsoft Visual
Studio tool bar. Clicking on the buttons would display, title, type and description of the
movies from the file.
                                           355
The XmlWriter class is used to write XML data into a stream, a file or a TextWriter
object. It also works in a forward-only, non-cached manner.
Example 2
Let us create an XML file by adding some data at runtime. Take the following steps −
      Add a WebBrowser control and a button control in the form.
      Change the Text property of the button to Show Authors File.
      Add the following code in the code editor.
Imports System.Xml
Public Class Form1
   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles
MyBase.Load
      ' Set the caption bar text of the form.
      Me.Text = "tutorialspoint.com"
   End Sub
   Private Sub Button1_Click(sender As Object, e As EventArgs)
Handles Button1.Click
      Dim xws As XmlWriterSettings = New XmlWriterSettings()
      xws.Indent = True
      xws.NewLineOnAttributes = True
      Dim xw As XmlWriter = XmlWriter.Create("authors.xml", xws)
      xw.WriteStartDocument()
      xw.WriteStartElement("Authors")
      xw.WriteStartElement("author")
      xw.WriteAttributeString("code", "1")
      xw.WriteElementString("fname", "Zara")
      xw.WriteElementString("lname", "Ali")
      xw.WriteEndElement()
                                           356
      xw.WriteStartElement("author")
      xw.WriteAttributeString("code", "2")
      xw.WriteElementString("fname", "Priya")
      xw.WriteElementString("lname", "Sharma")
      xw.WriteEndElement()
      xw.WriteStartElement("author")
      xw.WriteAttributeString("code", "3")
      xw.WriteElementString("fname", "Anshuman")
      xw.WriteElementString("lname", "Mohan")
      xw.WriteEndElement()
      xw.WriteStartElement("author")
      xw.WriteAttributeString("code", "4")
      xw.WriteElementString("fname", "Bibhuti")
      xw.WriteElementString("lname", "Banerjee")
      xw.WriteEndElement()
      xw.WriteStartElement("author")
      xw.WriteAttributeString("code", "5")
      xw.WriteElementString("fname", "Riyan")
      xw.WriteElementString("lname", "Sengupta")
      xw.WriteEndElement()
      xw.WriteEndElement()
      xw.WriteEndDocument()
      xw.Flush()
      xw.Close()
      WebBrowser1.Url = New
Uri(AppDomain.CurrentDomain.BaseDirectory + "authors.xml")
   End Sub
End Class
     Execute and run the above code using Start button available at the Microsoft
      Visual Studio tool bar. Clicking on the Show Author File would display the newly
      created authors.xml file on the web browser.
                                         357
Parsing XML with DOM API
According to the Document Object Model (DOM), an XML document consists of nodes
and attributes of the nodes. The XmlDocument class is used to implement the XML
DOM parser of the .Net Framework. It also allows you to modify an existing XML
document by inserting, deleting or updating data in the document.
Following are some of the commonly used methods of the XmlDocument class −
1
        AppendChild
        Adds the specified node to the end of the list of child nodes, of this node.
2
        CreateAttribute(String)
        Creates an XmlAttribute with the specified Name.
3
        CreateComment
                                          358
     Creates an XmlComment containing the specified data.
4
     CreateDefaultAttribute
     Creates a default attribute with the specified prefix, local name and namespace URI.
5
     CreateElement(String)
     Creates an element with the specified name.
6
     CreateNode(String, String, String)
     Creates an XmlNode with the specified node type, Name, and NamespaceURI.
7
     CreateNode(XmlNodeType, String, String)
     Creates an XmlNode with the specified XmlNodeType, Name, and NamespaceURI.
8
     CreateNode(XmlNodeType, String, String, String)
     Creates a XmlNode with the specified XmlNodeType, Prefix, Name, and NamespaceURI.
9
     CreateProcessingInstruction
     Creates an XmlProcessingInstruction with the specified name and data.
10
     CreateSignificantWhitespace
     Creates an XmlSignificantWhitespace node.
11
     CreateTextNode
     Creates an XmlText with the specified text.
12
     CreateWhitespace
     Creates an XmlWhitespace node.
13
     CreateXmlDeclaration
     Creates an XmlDeclaration node with the specified values.
                                     359
14
     GetElementById
     Gets the XmlElement with the specified ID.
15
     GetElementsByTagName(String)
     Returns an XmlNodeList containing a list of all descendant elements that match the
     specified Name.
16
     GetElementsByTagName(String, String)
     Returns an XmlNodeList containing a list of all descendant elements that match the
     specified LocalName and NamespaceURI.
17
     InsertAfter
     Inserts the specified node immediately after the specified reference node.
18
     InsertBefore
     Inserts the specified node immediately before the specified reference node.
19
     Load(Stream)
     Loads the XML document from the specified stream.
20
     Load(String)
     Loads the XML document from the specified URL.
21
     Load(TextReader)
     Loads the XML document from the specified TextReader.
22
     Load(XmlReader)
     Loads the XML document from the specified XmlReader.
23
     LoadXml
     Loads the XML document from the specified string.
                                     360
24
         PrependChild
         Adds the specified node to the beginning of the list of child nodes for this node.
25
         ReadNode
         Creates an XmlNode object based on the information in the XmlReader. The reader must
         be positioned on a node or attribute.
26
         RemoveAll
         Removes all the child nodes and/or attributes of the current node.
27
         RemoveChild
         Removes specified child node.
28
         ReplaceChild
         Replaces the child node oldChild with newChild node.
29
         Save(Stream)
         Saves the XML document to the specified stream.
30
         Save(String)
         Saves the XML document to the specified file.
31
         Save(TextWriter)
         Saves the XML document to the specified TextWriter.
32
         Save(XmlWriter)
         Saves the XML document to the specified XmlWriter.
Example 3
In this example, let us insert some new nodes in the xml document authors.xml and
then show all the authors' first names in a list box.
Take the following steps −
                                          361
      Add the authors.xml file in the bin/Debug folder of your application( it should be
       there if you have tried the last example)
      Import the System.Xml namespace
      Add a list box and a button control in the form and set the text property of the
       button control to Show Authors.
      Add the following code using the code editor.
Imports System.Xml
Public Class Form1
   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles
MyBase.Load
      ' Set the caption bar text of the form.
      Me.Text = "tutorialspoint.com"
   End Sub
                                           362
      Execute and run the above code using Start button available at the Microsoft
       Visual Studio tool bar. Clicking on the Show Author button would display the first
       names of all the authors including the one we have added at runtime.
 Previous Page
Next Page  
A dynamic web application consists of either or both of the following two types of
programs −
      Server-side scripting − these are programs executed on a web server, written
       using server-side scripting languages like ASP (Active Server Pages) or JSP
       (Java Server Pages).
      Client-side scripting − these are programs executed on the browser, written
       using scripting languages like JavaScript, VBScript, etc.
ASP.Net is the .Net version of ASP, introduced by Microsoft, for creating dynamic web
pages by using server-side scripts. ASP.Net applications are compiled codes written
using the extensible and reusable components or objects present in .Net framework.
These codes can use the entire hierarchy of classes in .Net framework.
The ASP.Net application codes could be written in either of the following languages −
      Visual Basic .Net
      C#
                                           363
       Jscript
       J#
In this chapter, we will give a very brief introduction to writing ASP.Net applications
using VB.Net. For detailed discussion, please consult the ASP.Net Tutorial.
1
             Application
             Describes the methods, properties, and collections of the object that stores information
             related to the entire Web application, including variables and objects that exist for the
             lifetime of the application.
             You use this object to store and retrieve information to be shared among all users of an
             application. For example, you can use an Application object to create an e-commerce
             page.
2
             Request
             Describes the methods, properties, and collections of the object that stores information
             related to the HTTP request. This includes forms, cookies, server variables, and
             certificate data.
             You use this object to access the information sent in a request from a browser to the
             server. For example, you can use a Request object to access information entered by a
             user in an HTML form.
3
             Response
             Describes the methods, properties, and collections of the object that stores information
             related to the server's response. This includes displaying content, manipulating headers,
             setting locales, and redirecting requests.
             You use this object to send information to the browser. For example, you use a
             Response object to send output from your scripts to a browser.
4
             Server
                                             364
           Describes the methods and properties of the object that provides methods for various
           server tasks. With these methods you can execute code, get error conditions, encode
           text strings, create objects for use by the Web page, and map physical paths.
           You use this object to access various utility functions on the server. For example, you
           may use the Server object to set a time out for a script.
5
           Session
           Describes the methods, properties, and collections of the object that stores information
           related to the user's session, including variables and objects that exist for the lifetime of
           the session.
           You use this object to store and retrieve information about particular user sessions. For
           example, you can use Session object to keep information about the user and his
           preference and keep track of pending operations.
Web Forms
Web forms consists of −
                                            365
      User interface
      Application logic
User interface consists of static HTML or XML elements and ASP.Net server controls.
When you create a web application, HTML or XML elements and server controls are
stored in a file with .aspx extension. This file is also called the page file.
The application logic consists of code applied to the user interface elements in the
page. You write this code in any of .Net language like, VB.Net, or C#. The following
figure shows a Web Form in Design view −
Example
Let us create a new web site with a web form, which will show the current date and
time, when a user clicks a button. Take the following steps −
      Select File → New → Web Site. The New Web Site Dialog Box appears.
                                        366
   Select the ASP.Net Empty Web Site templates. Type a name for the web site
    and select a location for saving the files.
   You need to add a Default page to the site. Right click the web site name in the
    Solution Explorer and select Add New Item option from the context menu. The
    Add New Item dialog box is displayed −
   Select Web Form option and provide a name for the default page. We have kept
    it as Default.aspx. Click the Add button.
   The Default page is shown in Source view
                                       367
      Set the title for the Default web page by adding a value to the <Title> tag of the
       page, in the Source view −
      To add controls on the web page, go to the design view. Add three labels, a text
       box and a button on the form.
      Double-click the button and add the following code to the Click event of the
       button −
Protected Sub Button1_Click(sender As Object, e As EventArgs) _
Handles Button1.Click
   Label2.Visible = True
   Label2.Text = "Welcome to Tutorials Point: " + TextBox1.Text
   Label3.Text = "You visited us at: " + DateTime.Now.ToString()
End Sub
When the above code is executed and run using Start button available at the Microsoft
Visual Studio tool bar, the following page opens in the browser −
                                           368
Enter your name and click on the Submit button −
Web Services
A web service is a web application, which is basically a class consisting of methods
that could be used by other applications. It also follows a code-behind architecture like
the ASP.Net web pages, although it does not have an user interface.
The previous versions of .Net Framework used this concept of ASP.Net Web Service,
which had .asmx file extension. However, from .Net Framework 4.0 onwards, the
Windows Communication Foundation (WCF) technology has evolved as the new
successor of Web Services, .Net Remoting and some other related technologies. It has
rather clubbed all these technologies together. In the next section, we will provide a
brief introduction to Windows Communication Foundation(WCF).
If you are using previous versions of .Net Framework, you can still create traditional
web services. Please consult ASP.Net - Web Services tutorial for detailed description.
                                           369
Windows Communication Foundation
Windows Communication Foundation or WCF provides an API for creating distributed
service-oriented applications, known as WCF Services.
Like Web services, WCF services also enable communication between applications.
However, unlike web services, the communication here is not limited to HTTP only.
WCF can be configured to be used over HTTP, TCP, IPC, and Message Queues.
Another strong point in favour of WCF is, it provides support for duplex communication,
whereas with web services we could achieve simplex communication only.
From beginners' point of view, writing a WCF service is not altogether so different from
writing a Web Service. To keep the things simple, we will see how to −
      Create a WCF Service
      Create a Service Contract and define the operations
      Implement the contract
      Test the Service
      Utilize the Service
Example
To understand the concept let us create a simplistic service that will provide stock price
information. The clients can query about the name and price of a stock based on the
stock symbol. To keep this example simple, the values are hardcoded in a two-
dimensional array. This service will have two methods −
      GetPrice Method − it will return the price of a stock, based on the symbol
       provided.
      GetName Method − it will return the name of the stock, based on the symbol
       provided.
Creating a WCF Service
Take the following steps −
      Open VS Express for Web 2012
      Select New Web Site to open the New Web Site dialog box.
      Select WCF Service template from list of templates −
                                           370
      Select File System from the Web location drop-down list.
      Provide a name and location for the WCF Service and click OK.
      A new WCF Service is created.
Creating a Service Contract and Defining the Operations
A service contract defines the operation that a service performs. In the WCF Service
application, you will find two files automatically created in the App_Code folder in the
Solution Explorer
      IService.vb − this will have the service contract; in simpler words, it will have the
        interface for the service, with the definitions of methods the service will provide,
        which you will implement in your service.
      Service.vb − this will implement the service contract.
      Replace the code of the IService.vb file with the given code −
Public Interface IService
   <OperationContract()>
   Function GetPrice(ByVal symbol As String) As Double
<OperationContract()>
                                            371
   Function GetName(ByVal symbol As String) As String
End Interface
Implementing the Contract
In the Service.vb file, you will find a class named Service which will implement the
Service Contract defined in the IService interface.
Replace the code of IService.vb with the following code −
' NOTE: You can use the "Rename" command on the context menu to
change the class name "Service" in code, svc and config file
together.
Public Class Service
   Implements IService
   Public Sub New()
   End Sub
   Dim stocks As String(,) =
   {
      {"RELIND", "Reliance Industries", "1060.15"},
      {"ICICI", "ICICI Bank", "911.55"},
      {"JSW", "JSW Steel", "1201.25"},
      {"WIPRO", "Wipro Limited", "1194.65"},
      {"SATYAM", "Satyam Computers", "91.10"}
   }
       Dim i As Integer
       'it takes the symbol as parameter and returns price
       For i = 0 To i = stocks.GetLength(0) - 1
                                         372
         End If
      Next i
      Return "Stock Not Found"
   End Function
End Class
Testing the Service
To run the WCF Service, so created, select the Debug → Start Debugging option from
the menu bar. The output would be −
For testing the service operations, double click the name of the operation from the tree
on the left pane. A new tab will appear on the right pane.
Enter the value of parameters in the Request area of the right pane and click the
'Invoke' button.
The following diagram displays the result of testing the GetPrice operation −
                                          373
The following diagram displays the result of testing the GetName operation −
                                         374
Utilizing the Service
Let us add a default page, a ASP.NET web form in the same solution from which we
will be using the WCF Service we have just created.
Take the following steps −
      Right click on the solution name in the Solution Explorer and add a new web
       form to the solution. It will be named Default.aspx.
      Add two labels, a text box and a button on the form.
      We need to add a service reference to the WCF service we just created. Right
       click the website in the Solution Explorer and select Add Service Reference
       option. This opens the Add Service Reference Dialog box.
      Enter the URL(location) of the Service in the Address text box and click the Go
       button. It creates a service reference with the default name ServiceReference1.
       Click the OK button.
                                           375
Adding the reference does two jobs for your project −
      Creates the Address and Binding for the service in the web.config file.
      Creates a proxy class to access the service.
      Double click the Get Price button in the form, to enter the following code snippet
       on its Click event −
Partial Class _Default
   Inherits System.Web.UI.Page
      When the above code is executed and run using Start button available at the
       Microsoft Visual Studio tool bar, the following page opens in the browser −
                                           376
   Enter a symbol and click the Get Price button to get the hard-coded price −
377