1. Introduction To Visual Basic 2015 Mark Maslach
download
https://ebookbell.com/product/introduction-to-visual-
basic-2015-mark-maslach-55141896
Explore and download more ebooks at ebookbell.com
2. Here are some recommended products that we believe you will be
interested in. You can click the link to download.
An Introduction To Programming Using Visual Basic 2005 6th Ed David I
Schneider
https://ebookbell.com/product/an-introduction-to-programming-using-
visual-basic-2005-6th-ed-david-i-schneider-930012
A Programmers Introduction To Visual Basic Net Craig Utley
https://ebookbell.com/product/a-programmers-introduction-to-visual-
basic-net-craig-utley-5476878
Introduction To Programming Using Visual Basic 11e 11th Edition David
I Schneider
https://ebookbell.com/product/introduction-to-programming-using-
visual-basic-11e-11th-edition-david-i-schneider-11732072
An Introduction To Programming Using Visual Basic 2008 With Visual
Studio Expression Edition Dvd 7th Ed Schneider
https://ebookbell.com/product/an-introduction-to-programming-using-
visual-basic-2008-with-visual-studio-expression-edition-dvd-7th-ed-
schneider-22041544
3. An Introduction To Programming Using Visual Basic 2012 9th Edition
David I Schneider
https://ebookbell.com/product/an-introduction-to-programming-using-
visual-basic-2012-9th-edition-david-i-schneider-4332796
An Introduction To Programming Using Visual Basic 2012 Schneider Di
https://ebookbell.com/product/an-introduction-to-programming-using-
visual-basic-2012-schneider-di-5498324
Student Solutions Manual Introduction To Programming Using Visual
Basic 2010 8th Edition David I Schneider
https://ebookbell.com/product/student-solutions-manual-introduction-
to-programming-using-visual-basic-2010-8th-edition-david-i-
schneider-4164108
An Introduction To Objectoriented Programming With Visual Basic Net
1st Edition Dan Clark
https://ebookbell.com/product/an-introduction-to-objectoriented-
programming-with-visual-basic-net-1st-edition-dan-clark-55132358
Basic Vision An Introduction To Visual Perception 2nd Edition Robert
Snowden
https://ebookbell.com/product/basic-vision-an-introduction-to-visual-
perception-2nd-edition-robert-snowden-4630578
6. Introduction to Visual Basic 2015
by Mark Maslach
Geek University Press
Malesnica 52, Zagreb
Croatia
8. About this book
This book teaches you how to program in Visual Basic 2015 - an object-
oriented programming language designed by Microsoft. This book is designed
for people without much experience in the world of programming. Although the
book presumes some knowledge about computer systems in general, it is
customized for beginners.
What will you learn
You will learn the basics of programming in Visual Basic 2015 - what a
variable is, how to perform arithmetic operations, the if statement, for loops,
how to capture user input, how to develop GUI applications in Visual Basic,
connect application to a database, and much more.
Source Code
There is no need to type in all the code included in this book manually - we've
made the source code available at http://geek-university.com/uploads/vb.zip.
About the author
Mark Maslach is a software developer from Zagreb, Croatia. Mark has been
programming in various programming languages since his teens. Mark is also
the co-founder of Geek University, a popular online portal for online learning,
available at http://geek-university.com. Mark can be reached at mark@geek-
university.com.
9. Contents at a Glance
Chapter 1 - Introduction to Visual Basic 2015 10
Chapter 2 - Visual Basic 2015 Concepts 24
Chapter 3 - Basic Controls 38
Chapter 4 - Operators 54
Chapter 5 - Flow control 64
Chapter 6 - Working with data structures 76
Chapter 7 - String Manipulation 90
Chapter 8 - Working with files 98
Chapter 9 - Advanced forms 108
Chapter 10 - Error Management 126
Chapter 11 - Function and Subs 136
Chapter 12 - Classes and Objects 150
Chapter 13 - Visual Basic and Databases 160
Chapter 14 - Network programming 176
Appendices 196
Conclusion 210
10. Table of Contents
Chapter 1 - Introduction to Visual Basic 2015 10
What is Visual Basic 2015? 11
What is .NET Framework? 12
Install Visual Studio 2015 13
Getting to know the IDE 15
Writing your first .NET code 16
Chapter 2 - Visual Basic 2015 Concepts 24
Visual Basic 2015 Variables 25
Rules for Naming Variables in Visual Basic 2015 25
Visual Basic 2015 Data types 26
String Variables 28
Working with dates 30
Comments 33
Events 34
Chapter 3 - Basic Controls 38
Labels 39
LinkLabel 40
TextBox 40
Combo Box 42
ListBox 43
GroupBox 45
RadioButton 46
11. CheckBox 48
Get user input 49
Chapter 4 - Operators 54
Arithmetic operators 55
Comparison operators 56
Logical operators 58
Assignment operators 60
Chapter 5 - Flow control 64
If...else statements 65
Select Case Statement 66
Specify a range of values in a Caseclause 68
For Loop 68
Do Loops 70
Chapter 6 - Working with data structures 76
Arrays 77
Visual Basic 2015 Constants 79
Enumerations 82
Structures 84
Chapter 7 - String Manipulation 90
ToUpper method 91
ToLower method 92
The Trim Method 92
The InStr function 93
The Val function 94
The Contains Method 95
The Insert Method 95
12. Chapter 8 - Working with files 98
How to Open a File in Visual Basic 2015 100
Writing to a Text File 102
Copy a File in VB .NET 103
Move a File with VB .NET 104
Delete a file in Visual Basic 2015 104
Chapter 9 - Advanced forms 108
Adding Menus and Sub Menus in an Application 109
Underline Shortcut 112
Anchoring and Docking 113
Docking 116
Creating multiple forms 117
Modal forms 119
Chapter 10 - Error Management 126
Design Time errors 127
Run Time errors 128
Logical errors 128
Breakpoints 128
Try...Catch 130
Chapter 11 - Function and Subs 136
Sub procedures 137
ByVal and ByRef 139
Functions 141
Modules in Visual Basic 2015 142
Chapter 12 - Classes and Objects 150
Create a Class 151
13. Create Properties in VB .NET Classes 153
Create Methods in your VB .NET Classes 155
Chapter 13 - Visual Basic and Databases 160
Database Terminology 161
SQLServer 2014 Installation 161
Connecting an application to an SQLServer 2014 Database 167
Previewing the Contents of a Dataset 171
Chapter 14 - Network programming 176
Socket programming 177
Writing a simple TCP/IP server 177
Writing a simple TCP/IP client 180
HTTP protocol 185
FTP protocol 187
SMTP protocol 191
Appendices 196
Appendix I: Deploying a Windows-based Application 196
Appendix II: Cheat Sheet 202
Conclusion 210
14. Chapter 1 - Introduction to Visual Basic
2015
IN THIS CHAPTER
Learning about Visual Basic 2015
Installing Visual Studio 2015
Getting to know the IDE
15. What is Visual Basic 2015?
Visual Basic 2015 is an object-oriented programming language designed by
Microsoft and implemented on the .NET Framework. It is the latest version of
Visual Basic, introduced by Microsoft in 2015. This version includes many
new features, particularly for building mobile and web applications.
Visual Basic is a high-level programming language that allows you to write
Windows, mobile, and web applications. Simply put, a programming language
is a special kind of language used to develop software that will be executed on
a computer. Visual Basic, as any other programming language, has its own
syntax, keywords and rules for instructing computers to perform specific tasks.
Each program on your computer has been written using a programming
language (in many cases, that language is Visual Basic!).
Visual Basic 2015 is implemented by Microsoft's .NET Framework and has
full access to all the libraries in the .NET Framework. You've probably
already encountered .NET Framework because an application asked you to
install it. I will describe .NET framework in more details in the following
section.
Visual Basic code can be written in any text editor (such as Notepad).
However, most of the time programmers use Visual Studio 2015 Integrated
Development Framework, which is a software from Microsoft that enables
you to write, test, run, and debug your code in a nice GUI environment. Below
is the picture of the Visual Studio 2015 IDE we will be using throughout this
book:
16. NOTE
It's also possible to run Visual Basic 2015 programs on Mono, the open-source
alternative to .NET, not only under Windows, but even on Linux or Mac OS X.
What is .NET Framework?
.NET Framework is a software framework developed by Microsoft that runs
primarily on Microsoft Windows. You can think of it as is a platform that
provides tools and libraries you need to build and run networked application
and web services.
.NET Framework consists of two parts:
The Common Language Runtime (CLR) - the runtime environment of
the .NET Framework. It provides a virtual machine-like sandbox in
which applications run and supplies services such as such as memory
and exception management, debugging and profiling, and security.
The .NET Framework Class Library (FCL) - a huge collection of
language-independent classes that are arranged into a logical grouping,
17. according to their functionality and usability. Some of the services
provided by FCLinclude accessing system services, interaction with
databases, establishing network connections, and much more.
Install Visual Studio 2015
Before you start programming, you will need to download and install Visual
Studio 2015, which is a development environment where you will write your
code. To do this, browse to the official download site and download the latest
version for Windows:
http://www.visualstudio.com/en-us/downloads/visual-studio-2015-
downloads-vs.aspx
The Download page should appear:
I recommend that you download the 90-day trial of Visual Studio 2015
Enterprise version. Click on the Download button and the installer will be
downloaded to your hard drive. Double-click the file to start the installation
process.
NOTE
As of time of writing this book, the current version of Visual Studio was 2015.
All of the examples in the book use this version of Visual Studio. However, if
18. you have an older version of Visual Studio or a newer version appears, some
of the example might look a little bit different in your environment.
The installation is pretty much straightforward and requires you to specify only
a few things. First, you need to choose where to install the program and the
type of the installation. I recommend that you leave all the default options and
click the Install button:
The installation process should start:
19. The installation could take quite some time, depending on the speed of your
Internet connection. After completing the installation process, you might see an
option to restart your computer to complete the installation process. If that is
the case, press the Restart Now button to restart your computer.
Getting to know the IDE
In this section you will learn a little bit about the Visual Studio, what it does,
how it looks like, and what it is used for.
Visual Studio 2015 comes with lots of new enhancements and features. Some
of these features widely enhance the productivity of application development.
Let's get our hands dirty and dive into the Visual Studio IDE features and
components to help you get started with using Visual Basic.
The following image shows the Visual Studio 2015 IDE with an open project:
20. Visual Studio IDE has 7 main parts:
1. Menu and toolbar - the Menu contains group of related commands that,
when selected, cause the Visual Studio to perform specific actions. (e.g.
open a window, save a project, exit a program). For example, new
projects are created by selecting File > New > Project.
2. Toolbox window - the Toolbox window contains all objects you can use
to build your application's GUI. The control objects in the Toolbox are
organized in a various tabs. The Common Controls tab contains the icons
for the most common Windows controls, while the All Windows
Controls tab contains all the controls you can place on your form.
3. Solution Explorer - once you open up a project, the Solution Explorer
shows the main files of your application. You can use it to quickly move
from one part of the application to the other.
4. Properties window - this window allows you to change the control's
properties at a design time environment.
5. Working area - the central part of the IDE is your working area, where
you design the user interface.
6. Code window - the place where you write your code.
7. Debug window - Visual Studio also includes a debugger, so you can run
your applications in development time, without having to make
executables or distribution packages.
21. Writing your first .NET code
Now that we've learned a little bit about the IDE, let's use it to write our first
program. Start your Visual Studio 2015 and you should get a screen like this:
From the File menu select New Project. The following dialog box should
appear:
22. If not already selected, select Visual Basic under Templates. Choose Windows
Forms Application and change the default project name to Hello world
project. We've selected the Windows Forms Application type because this type
provides us with a form in which we can easily add user interface elements,
such as buttons, labels, menus, and other GUI elements.
NOTE
A little bit of trivia - we've named our first application Hello world project
because of a custom in the programming world. The first program that a novice
programmer writes usually simply outputs the Hello World message.
Click the OK button and the Visual Basic design environment will open. It
should look something like this:
23. As you can see from the picture above, we've got a screen similar to the one
we've described in the previous section. In the middle of the screen is the
Design area with our blank form. Here we can add UI elements from the
toolbox on the left. So let's add some elements to our form.
We will start our example by adding a button to your new form. Locate the
Button tool from the toolbox and double-click on it. The button should be
added to the top left position of your form:
24. In the bottom right corner you should see the Properties window that contains
various button settings. Find and change the following properties of Button1
to:
Name: btnHelloWorld
Text: Display message
Now, double click your new Display message button, and add the following
code:
MessageBox.Show("Hello World")
To run the program, do one of the following:
From the menu bar, click Debug
From the drop down menu, click Start Debugging
Press the F5 key on your keyboard
You have now created your first program! When executed, it should look
something like this:
26. taken out to about a foot in depth, and the space filled in with stone
or brickwork to the level of the pile heads, which should be carefully
trimmed, then covered with sills about 12 inches square, well spiked
down to them. The spaces between the sills should be well faced
with brickwork, and the whole surface should then be covered with
6-inch plank, properly spiked down to the sills below. Upon this
platform the masonry and brickwork of the wall should be built. The
wall should be carefully backed up as it proceeds with sound earth
or clay, or clay mixed with one-sixth of gravel or concrete, as shall
be deemed most advisable. These curved walls, if properly
constructed, are stronger and more economical than the ordinary
walls.
In some cases, as in that of Sheerness, for example, the
foundation is so bad that a totally different plan must be adopted. At
Sheerness it was necessary that the base of the walls should be
increased, distributing the weight over a wider area, so that each
superficial foot of the superincumbent mass should have a larger
bearing, thus greatly relieving the pressure over every part.
The foundation upon which the walls were built was as bad as
possible, being composed of nothing but loose running silt and sand.
Upon such a foundation walls of the ordinary kind would not have
stood; my father therefore saw the necessity of designing some new
construction, upon the principles above mentioned. He had
previously adopted something similar for the docks at Great Grimsby,
in Lincolnshire, in 1786, which design was carried into effect with
great success. The walls at Sheerness and at Great Grimsby were
built both upon the same principle, modified according to local
circumstances. Sheerness docks were finished altogether in the year
1826, and they have stood ever since.
I believe that I have now enumerated all the chief points to which
the education of a civil engineer should be directed. Whilst he
continues in an engineer’s office, whatever business is brought
before him, he should always endeavour to thoroughly understand
the reasons for which such and such a work is proposed to be made,
27. and the principles upon which it is to be constructed; and if he finds,
according to his previous education, difficulties either in the principle
or construction, he should modestly state his doubts to his superior;
if no explanation is given, he has simply to do as he is ordered,
making notes of his doubts, and when the work is carried into effect
he will then be able to ascertain how far he was right or wrong. If
the work turns out to be a failure, his previous calculations will show
him that he was right; but if the work succeeds, his calculations
were wrong, and he should carefully go over them again to ascertain
his error. He should follow the same process when he has to design
and carry into effect any work upon his own responsibility, and if he
is in doubt as to any point, let him consult some one of his
professional brethren in whom he has confidence. When he is
consulted on similar occasions by another engineer, let him give his
advice and opinion to the best of his power; by this means he will
gain the respect of his colleagues, and every one will be ready to
help him when required.
Let him be particularly careful about his estimates; and after he
has estimated fully the probable cost of a work, let him add an
allowance of quite 15 per cent. for contingencies, which in all
engineering works are so numerous and varied that it is almost
impossible to foresee them.
We should always recollect that the great object of all engineering
works is to produce a fair return for the capital expended upon
them, or, in other words, that they should pay. If, after due
calculation, it is found there is no chance of that, they should not be
undertaken; for although it may be very gratifying to the
professional reputation of an engineer to have executed a great
work, it is but a poor consolation to his subscribers to find that their
money has been comparatively thrown away without any adequate
return.
Upon these grounds, therefore, I think it is better that the
engineer should confine himself strictly to his business, that is, of
designing and estimating any proposed work in the best possible
28. manner to ensure the object intended. Let those who are most
competent ascertain whether there is a sufficient prospect of traffic
to pay a good return for the required capital; and so long as the
engineer executes the work for his estimate, he cannot be blamed if
the work does not pay a sufficient return. In fact, the whole
commercial value of a work depends upon its cost, and therefore it
is so important that the estimate should be adhered to as closely as
possible, for if this be much exceeded the commercial calculation
falls to the ground, and then the subscribers have just reason to
complain. Against this I have heard it argued that if correct
estimates were always made, and the ultimate cost of many works
was known beforehand, they would never have been carried out,
although notwithstanding the increased cost they have finally proved
to be very valuable. This is certainly to some extent true; many
inventions and discoveries have ruined the original promoters, yet
have ultimately conferred the greatest benefits upon mankind; and
many enterprises that have ruined the original undertakers have
greatly enriched their successors. Still there can be no excuse for an
engineer knowingly underestimating the cost of a work; he is
undoubtedly bound to make a fair, honest estimate of every work
committed to his charge, so far as his judgment goes; having done
that his duty is discharged; nothing further can be expected of him
than to see that the work entrusted to his care is strictly carried into
effect according to that estimate.
Since the summer of 1866 I have done scarcely anything. The
great crisis and subsequent panic that occurred at that time
paralysed the commercial world. I considered my advancing years (I
was then seventy-two), and the great hazard and uncertainty of
carrying on business, and thought it most prudent to retire. After the
harassing and anxious life that I had led for so many years, I felt my
health so shaken as to require complete repose. But I hope, if God
spares me, to be still useful to the profession and my country, by
29. completing a work on the drainage of the fens and lowlands of Great
Britain, and hydraulics generally. I also design to write a history of
engineering, enlarged from my Address to the Institution of Civil
Engineers, and a life of my revered father. All these I have already
sketched out, and I hope to complete them, if it please God to spare
my life a few years longer.
My apology for the present work is this: I think it is the duty of
everyone who has led an active professional life faithfully to record
the various works in which he has been engaged, the failures as well
as the successes, detailing the causes of both; for we frequently
learn more from the former than from the latter. I believe I have in
this book faithfully done this. From unavoidable circumstances I
have been obliged to trust entirely to memory while writing these
pages, having been totally precluded from consulting notes or
memoranda of any kind; I hope, therefore, that any inaccuracies
that may be detected by the reader will be pardoned, though I
believe that in the main my statements will be found correct.
Like others, I have had to contend with professional jealousy; but
I believe I have on all occasions done justice to my rivals, and I have
never wilfully attempted to injure anyone. Naturally of a very
sanguine temperament, I am but too apt to view things in a
favourable light, and to judge well of those with whom I come in
contact; as a consequence of this I have often been deceived by
those in whom I have placed the greatest confidence. This sanguine
disposition has been the cause of many disappointments; but it has
also enabled me to bear up successfully against failure, and still to
look forward with hope to the future. Whenever a misfortune has
occurred I have endeavoured to forget it as soon as possible; I
always called to mind the words of the great Duke of Wellington,
who said, There is no use in looking back and brooding over the
past; forget it, and apply your energies to the future, and do better
next time. This many people either cannot or will not do; hence they
succumb. Doubtless everyone has his trials, and some are much
better able to get through them than others; nevertheless, a very
little reflection will show that what is past cannot be helped, and
30. that by brooding over misfortune we do no good, but only waste our
energies and invite failure in everything else.
The motto of life should be, Forward! We must expect to be
checked, thwarted, and baffled in our endeavours to attain success;
but these obstacles, instead of totally arresting our progress, should
serve only to increase our energy. Like a river, impeded in its course,
in silence waits till its accumulated strength sweeps the obstruction
from its path, and it flows on majestically as before—so should we
make every difficulty we encounter add to our strength, instead of
increasing our weakness. Nevertheless, since “’tis not in mortals to
command success,” we may sometimes struggle in vain; and fortune
ever against us, we may be overcome at the last; but even then we
have this satisfaction—we have fought a good fight; we have done
the best we could; we have done our duty to the best of our ability,
and that is all that can be required of us. To do my duty has been
my endeavour through life; and probably if I had adhered to it more
strictly I might have done a great deal better. Nevertheless, little as I
have done, I should not have accomplished half so much had I not
kept that one object in view, as far as my physical and mental
powers would permit; and this is no small consolation. The old
motto, “Nil desperandum,” should be constantly on our lips, and
should act like the spur on a jaded steed. Affairs are never so bad
but they might have been worse, and they may generally be mended
by energy and perseverance, and a determination to make the best
of everything. We may not be able to accomplish all we aspire to
achieve; nevertheless by refusing to yield to misfortune we shall
escape the reproach of cowardice and faintheartedness. When we
suffer a defeat, let us calmly consider the cause of it, and nine times
out of ten we shall find that it is through our own fault; these
lessons of experience should be carefully laid to heart, and serve for
our future guidance.
I have never deemed wealth desirable for mere personal
gratification, but only in so far as it would have enabled me to help
others, to promote the advancement of science and the well-being
of my fellow creatures; this would have conferred the greatest
31. happiness upon me, but it has been denied by the Almighty Disposer
of events, and most probably with justice, that it might be done
better by other hands. I therefore humbly bow to the Almighty’s
decision; and if I have done the best I could in His sight, I am amply
rewarded. I, however, most deeply regret that I have not done
more. I return my most fervent thanks to the Almighty that He, out
of His great mercy, has allowed me to do the little I have done; and
I most devoutly hope that He through His Son Jesus Christ will
pardon my shortcomings; and I say with all reverence, Bless the
Lord for all His mercies!
Dawlish, December 9, 1867.
32. INDEX.
Aberdeen, 10, 15.
Acts of Parliament, 7, 159, 199, 200, 204, 205, 208, 209, 212,
223, 238, 399, 405.
Adventures in Greece, 102.
Adventures in Portugal, 352.
Adventures in Spain, 266, 269, 273.
Ægina, 78.
Africa an island, 141.
Aga, a Turkish, 118, 120, 131.
Aiasolok, 114.
Albion flour mills, 286.
Alderson, Baron, 238.
Alexandria, 131.
Alpheus, river, 98.
Ancholme level, 224.
Ancona, 44, 46.
Antiparos, 107.
Antwerp, 29.
Apollo, temple of, 119.
Approaches, London Bridge, 183-188, 197.
Aqueducts, 325, 369.
40. Fens, drainage of the, 199.
Ferguson, Mr. James, 16.
Fernando, Dom, 325.
Field of the Cloth of Gold, 27.
Fischa Dagnitz, 383.
Fish Street Hill, 183.
Fishmongers’ Hall, 186.
Fleet, Russian, 252.
Florence, 150.
Foley, Mr., 86.
Fontes, M., 325, 335, 339, 349.
Foulkes, Sir William, 207, 211.
Fox, Williams, and Co., 168.
Francis, Emperor of Austria, 281.
Freibourg, 37.
Frere, Mr., 122.
Fruit vessels of St. Michael’s, 392.
Gallery of Illustration, 195.
Gantry crane, 287, 289.
Gauges, railway, 239, 418.
Gell, Sir W., 48, 78.
Geneva, 36.
Genoa, 152.
Geographical Society, Royal, 248.
59. *** END OF THE PROJECT GUTENBERG EBOOK AUTOBIOGRAPHY
OF SIR JOHN RENNIE, F.R.S., PAST PRESIDENT OF THE INSTITUTE
OF CIVIL ENGINEERS ***
Updated editions will replace the previous one—the old editions will
be renamed.
Creating the works from print editions not protected by U.S.
copyright law means that no one owns a United States copyright in
these works, so the Foundation (and you!) can copy and distribute it
in the United States without permission and without paying
copyright royalties. Special rules, set forth in the General Terms of
Use part of this license, apply to copying and distributing Project
Gutenberg™ electronic works to protect the PROJECT GUTENBERG™
concept and trademark. Project Gutenberg is a registered trademark,
and may not be used if you charge for an eBook, except by following
the terms of the trademark license, including paying royalties for use
of the Project Gutenberg trademark. If you do not charge anything
for copies of this eBook, complying with the trademark license is
very easy. You may use this eBook for nearly any purpose such as
creation of derivative works, reports, performances and research.
Project Gutenberg eBooks may be modified and printed and given
away—you may do practically ANYTHING in the United States with
eBooks not protected by U.S. copyright law. Redistribution is subject
to the trademark license, especially commercial redistribution.
START: FULL LICENSE
60. Welcome to our website – the perfect destination for book lovers and
knowledge seekers. We believe that every book holds a new world,
offering opportunities for learning, discovery, and personal growth.
That’s why we are dedicated to bringing you a diverse collection of
books, ranging from classic literature and specialized publications to
self-development guides and children's books.
More than just a book-buying platform, we strive to be a bridge
connecting you with timeless cultural and intellectual values. With an
elegant, user-friendly interface and a smart search system, you can
quickly find the books that best suit your interests. Additionally,
our special promotions and home delivery services help you save time
and fully enjoy the joy of reading.
Join us on a journey of knowledge exploration, passion nurturing, and
personal growth every day!
ebookbell.com