You are on page 1of 17

VB6 to VB.

Net Tutorial

VB6 to VB.Net
Beginners Tutorial

Karl Durrance
Issue Status/Number 1.0
Issue date 10 th November, 2002

VB6 to VB.Net Tutorial Version 1.0


Page 1

VB6 to VB.Net Tutorial

Table of Contents
TABLE OF CONTENTS....................................................................................................................................................2
INTRODUCTION................................................................................................................................................................3
PURPOSE............................................................................................................................................................................3
SCOPE................................................................................................................................................................................3
REFERENCES.....................................................................................................................................................................3
VARIABLE DECLARATION ...........................................................................................................................................4
USER DEFINED T YPES (UDTS).....................................................................................................................................5
OPTION EXPLICIT / OP TION STRICT ..........................................................................................................................5
STRING MANIPULATION COMMANDS.....................................................................................................................6
CODING EXAMPLES AND COMPARISON................................................................................................................7
RETRIEVING THE APPLICATION PATH .......................................................................................................................7
PASSING TIME BACK TO THE CPU................................................................................................................................7
DISPLAYING MESSAGE BOXS AND RETRIEVING A RESPONSE WITH A CASE STATEMENT ..............................8
W ORKING WITH ARRAYS ..............................................................................................................................................9
Searching an array ...................................................................................................................................................9
Basic array sorting .................................................................................................................................................10
TEXT FILE MANIPULATION .......................................................................................................................................12
Reading Text Files ..................................................................................................................................................12
Writing/Creating Text Files ..................................................................................................................................13
CHECKING IF A FILE EXISTS........................................................................................................................................14
ERROR HANDLING.........................................................................................................................................................14
BASIC M ATHEMATIC FUNCTIONS..............................................................................................................................15
RETURNING VALUES FROM FUNCTIONS....................................................................................................................16
W ORKING WITH THE W INDOWS REGISTRY.............................................................................................................17
Reading the Registry ..............................................................................................................................................17
Writing to the Registry ...........................................................................................................................................17
Creating New Registry Keys .................................................................................................................................17

VB6 to VB.Net Tutorial Version 1.0


Page 2

VB6 to VB.Net Tutorial

Introduction
Purpose
This tutorial is intended to show some of the differences VB.Net has introduced over
VB6.

Scope
This tutorial is aimed at the VB.Net beginner. It will show some of the major
differences VB.Net has introduced over VB6. This tutorial does not cover changes in
the IDE, only basic code changes.

References
There are no references outside of this document.

VB6 to VB.Net Tutorial Version 1.0


Page 3

VB6 to VB.Net Tutorial

Variable Declaration
Variable types in VB.Net have altered when compared to VB6. Below is a table listing
the variable types and the associated value boundaries for VB.Net.

Variable Type

Size

Boundaries

Byte
Short
Single

8-Bit
16-Bit
32-Bit F/P

Long

64-Bit

Double

64-Bit F/P

Decimal

128-Bit

0-255
-32,768 -> 32767
-3.4028235E38 -> 3.4028235E38
-9,223,372,036,854,775,808 ->
9,223,372,036,854,775,807
-1.79769313486231E308 ->
1.79769313486231E308
+/- 79,228 x 1024

Integer

32-Bit

-2,147,483,648 -> 2,147,483,647

Char

16-Bit

0 -> 65,535

String

16-Bit

0 -> Approx 2 Billion Characters

Boolean

16-Bit

True or False

Date

64-Bit

Jan 1, 0001 -> Dec 31 9999

Object

32-Bit

All Types

The Variant data type is no longer supported in VB.Net. The Object type can be
used in cases where the data type is unknown like Variants were used in VB6. As
with VB6 and Variants, the Object type should be avoided.

VB6 to VB.Net Tutorial Version 1.0


Page 4

VB6 to VB.Net Tutorial

User Defined Types (UDTs)


UDTs are no longer declared with the Type keyword as in VB6. Below is an example
of a UDT in VB6 and the corresponding UDT in VB.Net
VB6
Type UserName
LoginName As String
FullName As String
Address As String
MaxLogins As Integer
End Type

Structure UserName
Dim LoginID As String
Dim FullName As String
Dim Address As String
Dim MaxLogins As Short
End Structure

VB.Net

Option Explicit / Option Strict


Option explicit is now defaulted to on instead of off as in VB6. To turn Option
Explicit off (even though you shouldnt) type the following at the top of the form.
Option Explicit Off
If a variable is not declared in your form it will be created as an Object if the above
statement is used.
Option Strict is a new command in VB.Net. This statement forces you to convert
variable types to the same type before they can be compared. To convert variable
types use commands such as CInt, CLng, CStr, CBool and CType functions.

VB6 to VB.Net Tutorial Version 1.0


Page 5

VB6 to VB.Net Tutorial

String Manipulation Commands


The standard string manipulation commands have now changed in VB.Net. Below is a
table mapping the older VB6 methods to the new VB.Net methods.

VB6 Method

VB.Net
Method

Description

UCase

ToUpper

Convert to Uppercase

LCase

ToLower

Convert to Lowercase

Mid

SubString

Return a part of a string

Len

Length

Get the length of a string

Instr

IndexOf

Give the index of a


substring

&

& / Concat

Concatenate Strings

Not
Implemented

StrComp

Compare two string

Not
Implemented

Insert

Add characters in the


middle of a string

Not
Implemented

Remove

Remove characters from


the middle of a string

VB.Net Example
Dim sString1, sString2 As String
sString1 = "this is a test"
sString2 = sString1.ToUpper
Dim sString1, sString2 As String
sString1 = "this is a test"
sString2 = sString1.ToLower
Dim sString1, sString2 As String
sString1 = "this is a test"
sString2 = sString1.SubString(5, 2)
Dim sString1 As String
Dim iLength As Short
sString1 = "this is a test"
iLength = sString1.Length
Dim sString1 As String
Dim iPosition As Short
sString1 = "this is a test"
iPosition = sString1.IndexOf("e")
Dim sString1 As String
sString1 = String.Concat(This, is a , test)
Dim sString1, sString2 As String
Dim bMatch As Boolean
sString1 = "this is a test"
sString2 = "this is A test"
bMatch = Not CBool(StrComp(sString1, sString2,
CompareMethod.Binary))
Dim sString1, sString2 As String
sString1 = "this a test"
sString2 = sString1.Insert(5, "is ")
Dim sString1, sString2 As String
sString1 = "this is a test"
sString2 = sString1.Remove(5, 3)

Note: Some Lines in the examples above have been truncated due to table width

VB6 to VB.Net Tutorial Version 1.0


Page 6

VB6 to VB.Net Tutorial

Coding Examples and Comparison


The following section will give examples of VB6 and the corresponding VB.Net code
to perform the same or similar function.

Retrieving the Application Path


Retrieve the directory name the executable has been executed from.

App.Path

VB6

IO. Path.GetDirectoryName (Application.ExecutablePath )

VB.Net

Passing time back to the CPU


Passing time back to the CPU is generally necessary while inside loops.

DoEvents

VB6

Application.DoEvents()

VB.Net

VB6 to VB.Net Tutorial Version 1.0


Page 7

VB6 to VB.Net Tutorial

Displaying Message Boxs and Retrieving a Response with a


Case Statement
Display a popup message to the user during application execution asking a question
VB6
Select Case MsgBox("Please Press
Yes or No", vbInformation +
vbYesNo, "Make a Selection")
Case vbNo
MsgBox "No Pressed"
Case vbYes
MsgBox "Yes Pressed"
End Select

VB.Net
Select Case MsgBox("Please Press
Yes or No",
MsgBoxStyle.Information +
MsgBoxStyle.YesNo, "Make a
Selection")
Case vbNo
MsgBox("No Pressed")
Case vbYes
MsgBox("Yes Pressed")

VB6 to VB.Net Tutorial Version 1.0


Page 8

Note: The
MessageBox.Sh
ow Function
can be used
instead of the
MsgBox
Function

VB6 to VB.Net Tutorial

Working with Arrays


This section will cover some of the primary array manipulation techniques available in
VB.Net. Many array techniques such as declaration and cycling through array
elements are exactly the same as VB6 and so wont be covered in this section.

Searching an array

Dim MyArray(4) As String


Dim iIndex As Integer

VB6

Dim MyArray(4) As String


Dim iIndex As Short

VB.Net

VB6 to VB.Net Tutorial Version 1.0


Page 9

VB6 to VB.Net Tutorial

Basic array sorting


VB6
This example from VB2TheMax.com (Bubblesort)
Dim MyArray(4) As Single
MyArray(0)
MyArray(1)
MyArray(2)
MyArray(3)
MyArray(4)

=
=
=
=
=

"1"
"5"
"2"
"4"
"3"

Call BubbleSortS(MyArray)
Sub BubbleSortS(arr() As Single,
Optional ByVal numEls _
As Variant, Optional ByVal
descending As Variant)

VB6 to VB.Net Tutorial Version 1.0


Page 10

VB6 to VB.Net Tutorial

VB.Net
Dim MyArray(4) As String
MyArray(0) = "A"
MyArray(1) = "D"
MyArray(2) = "E"
MyArray(3) = "B"
MyArray(4) = "C"
Array.Sort(MyArray)

Note: In the above example array is sorted A-E


Dim MyArray(4) As String
MyArray(0) = "A"
MyArray(1) = "D"
MyArray(2) = "E"
MyArray(3) = "B"
MyArray(4) = "C"
Array.Sort(MyArray)
Array.Reverse(MyArray)

VB6 to VB.Net Tutorial Version 1.0


Page 11

Note: In the
above example
array is sorted EA

VB6 to VB.Net Tutorial

Text File Manipulation


The following section will show the process of reading and writing to basic text files in
VB.Net. There are a number of different ways to do this, this section will only show
the process utilising the streaming file access methods. The below VB.Net examples
require the Imports System.IO statement at the top of the form.

Reading Text Files


VB6 Read Line by Line
Dim sLine As String
Open "C:\File.txt" For Input As #1
Do Until EOF(1)
Line Input #1, sLine
Loop
Close #1

VB.Net Read Line by Line


Dim sr As StreamReader =
File.OpenText("c:\file.txt")
Dim sLine As String
Do
sLine = sr.ReadLine()
Loop Until sLine = Nothing
sr.Close()

Dim sr As StreamReader = File.OpenText("c:\file.txt")


Dim sAllText As String
sAllText = sr.ReadToEnd()
sr.Close()

VB.Net Read All

Dim sAllText As String


Open "C:\File.txt" For Input As #1
sAllText = Input(LOF(1), #1)
Close #1

VB6 Read All

VB6 to VB.Net Tutorial Version 1.0


Page 12

VB6 to VB.Net Tutorial

Writing/Creating Text Files


VB6
Open "C:\File.txt" For Output As #1
Print #1, "Line1"
Print #1, "Line2"
Print #1, "Line3"
Close #1

VB6 to VB.Net Tutorial Version 1.0


Page 13

VB.Net
Dim fs As FileStream =
File.Open("C: \File.txt",
FileMode.OpenOrCreate,
FileAccess.Write)
Dim sr As New StreamWriter(fs)
sr.WriteLine("Line1")
sr.WriteLine("Line2")
sr.WriteLine("Lin e3")
sr.Close()

VB6 to VB.Net Tutorial

Checking if a File Exists


The following section will show the use of the VB.Net File class and how it can be
used to detect for the existence of a file. The VB.Net example below requires the
Imports System.IO statement at the top of the form
VB
If Dir("c:\file.txt") <> "" Then
MsgBox("File Found!")
Else
MsgBox("File Not Found!")
End If

VB.Net
If File.Exists("C: \File.txt") Then
MessageBox.Show("File Found!")
Else
MessageBox.Show("File Not
Found!")
End If

catch errors and


when trying to load

Error Handling
The following
section shows
how to use the
VB.Net Try
command to
display a prompt to the user
a picture in a picture box.

VB
On Error GoT o ErrorHandler

VB.Net

Picture1.Picture =
LoadPicture("c: \file.bmp")
Try
ErrorHandler:
MsgBox("Error Loading File!")

VB6 to VB.Net Tutorial Version 1.0


Page 14

PictureBox1.Image = System.Drawing.Bitmap.FromFile("c:\File.bmp")
Catch
MsgBox("Error Loading File!")
End Try

VB6 to VB.Net Tutorial

Basic Mathematic Functions


VB.Net supports all the mathematic functions that VB6 supports, but some of these
functions now exist in the System.Math class
VB.Net internally supports the following mathematic functions
Addition(+), Subtraction(-), Multiplication(*), Division(/), Integer Division(\),
Exponentiation(^).
The following functions exist in the System.Math class
Abs(), Atan(), Cos(), Exp(), Sign(), Sin(), Sqrt(), Tan()
Below is an example of how to get the square root of a number in VB.Net
Imports System.Math

Dim dblResult As Double


dblResult = Sqrt(64)

VB6 to VB.Net Tutorial Version 1.0


Page 15

VB6 to VB.Net Tutorial

Returning Values from Functions


VB.Net now supports a new keyword specifically used for functions. The Return
keyword performs the same as setting the function name to a value then and Exit
Function. Below is an example of the same function in VB6 and VB.Net
VB6
Public Function GetAgePhrase(ByVal Age As Integer) As String
If Age > 60 Then
GetAgePhrase = "Senior"
ElseIf Age > 40 Then
GetAgePhrase = "Middle-aged"
ElseIf Age > 20 Then
GetAgePhrase = "Adult"
ElseIf Age > 12 Then
GetAgePhrase = "Teen -aged"
ElseIf Age > 4 Then
GetAgePhrase = "School- aged"
ElseIf Age > 1 Then
GetAgePhrase = "Toddler"
Else
GetAgePhrase = "Infant"
End If
End Function

Public Function GetAgePhrase(ByVal Age As Integer) As String


If Age > 60 Then Return "Senior"
If Age > 40 Then Return "Middle-aged"
If Age > 20 Then Return "Adult"
If Age > 12 Then Return "Teen-aged"
If Age > 4 Then Return "School-aged"
If Age > 1 Then Return "Toddler"
Return "Infant"
End Function

VB.Net

VB6 to VB.Net Tutorial Version 1.0


Page 16

VB6 to VB.Net Tutorial

Working with the Windows Registry


VB.Net still supports the GetSetting and SaveSetting commands from VB6, but also
allow unrestricted access to the registry via the Microsoft.Win32.Registry class.
Below is an example of how to read and write to the registry in VB.Net. VB examples
will not be included due to length.

Reading the Registry


VB.Net
Dim oReg As Microsoft.Win32.Registry
Dim oRegKey As Microsoft.Win32.RegistryKey
Dim sValue As String
oRegKey = oReg.LocalMachine.OpenSubKey("Software\Microsoft \Windows NT \CurrentVersion", False)
sValue = oRegKey.GetValue("CurrentVersion", vbNullString)

Writing to the Registry


VB.Net
Dim oReg As Microsoft.Win32.Registry
Dim oRegKey As Microsoft.Win32.RegistryKey
oRegKey = oReg.LocalMachine.OpenSubKey("Key \SubKey", True )
oRegKey.SetValue("Entry", "NewValue")

Creating New Registry Keys

Dim oReg As Microsoft.Win32.Registry


Dim oRegKey As Microsoft.Win32.RegistryKey
oRegKey = oReg.LocalMachine.CreateSubKey("Key\Subkey\NewKey")

VB.Net

VB6 to VB.Net Tutorial Version 1.0


Page 17

You might also like