75
Leseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren Sie es gleich aus. Außerdem enthält diese Leseprobe die Lösung zu Kapitel 1 und 2, das Inhaltsverzeichnis und das gesamte Stichwortverzeichnis des Buches. Thomas Theis Einstieg in Visual Basic 2015 – Ideal für Programmiereinsteiger geeignet 552 Seiten, broschiert, 5. Auflage 2015 29,90 Euro, ISBN 978-3-8362-3703-1 www.rheinwerk-verlag.de/3813 »Einführung« »Grundlagen« »Lösungen« Inhaltsverzeichnis Index Der Autor Leseprobe weiterempfehlen Wissen, wie’s geht.

Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

Embed Size (px)

Citation preview

Page 1: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

LeseprobeJeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren Sie es gleich aus. Außerdem enthält diese Leseprobe die Lösung zu Kapitel 1 und 2, das Inhaltsverzeichnis und das gesamte Stichwortverzeichnis des Buches.

Thomas Theis

Einstieg in Visual Basic 2015 – Ideal für Programmiereinsteiger geeignet552 Seiten, broschiert, 5. Auflage 2015 29,90 Euro, ISBN 978-3-8362-3703-1

www.rheinwerk-verlag.de/3813

»Einführung«»Grundlagen«»Lösungen«

Inhaltsverzeichnis

Index

Der Autor

Leseprobe weiterempfehlen

Know-how für Kreative.Wissen, wie’s geht.

Page 2: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

17

1Kapitel 1

Einführung

In diesem Kapitel erlernen Sie anhand eines ersten Projekts den Umgang

mit der Entwicklungsumgebung und den Steuerelementen. Sie sind an-

schließend in der Lage, Ihr erstes eigenes Windows-Programm zu erstellen.

Visual Basic 2015 ist der Nachfolger von Visual Basic 2013 und damit eine

weitere Version von Visual Basic .NET. Hierbei handelt es sich um eine

objektorientierte Programmiersprache. Mithilfe der Entwicklungsumge-

bung Visual Studio 2015 können Sie u. a. in Visual Basic programmieren.

1.1 Aufbau dieses Buchs

BeispieleDieses Buch vermittelt Ihnen zunächst einen einfachen Einstieg in die

Programmierung mit Visual Basic und dem Visual Studio 2015. Die Bear-

beitung der Beispiele und das selbständige Lösen der vorliegenden

Übungsaufgaben helfen dabei, da sie für schnelle Erfolgserlebnisse sorgen,

die Sie zum Weitermachen motivieren sollen. In späteren Kapiteln werden

auch die komplexen Themen vermittelt.

GrundlagenVon Anfang an wird mit anschaulichen Windows-Anwendungen gearbei-

tet. Die Grundlagen der Programmiersprache und die Standardelemente

einer Windows-Anwendung, wie Sie sie schon von anderen Windows-Pro-

grammen kennen, werden gemeinsam vermittelt. Die Anschaulichkeit

einer Windows-Anwendung hilft Ihnen dabei, den eher theoretischen Hin-

tergrund der Programmiersprache leichter zu verstehen.

1.2 Visual Studio 2015

Community-VersionEs wird die frei verfügbare Entwicklungsumgebung Visual Studio Com-

munity 2015 eingesetzt. Sie können sie unter Windows 7 bis Windows 10

nutzen. Diese Version von Visual Studio können Sie bei Microsoft

3703.book Seite 17 Donnerstag, 3. September 2015 2:52 14

Page 3: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

1 Einführung

18

herunterladen (www.visualstudio.com/de-de) und auf Ihrem PC installie-

ren. Eine Installationsanleitung finden Sie in Anhang A. Die Projekte in

diesem Buch wurden unter Windows 10 bearbeitet. Auch die Screenshots

sind unter dieser Windows-Version entstanden.

Visual Studio 2015 bietet eine komfortable Entwicklungsumgebung. Sie

umfasst einen Editor zur Erstellung des Programmcodes, einen Compiler

zur Erstellung der ausführbaren Programme, einen Debugger zur Fehler-

suche und vieles mehr. Zur Installation verweise ich auf den Anhang.

Statt der hier empfohlenen Community-Version können Sie auch verschie-

dene frei verfügbare Express-Versionen von Visual Studio 2015 nutzen. Sie

können sie von der Microsoft-Internetseite per Web-Installer auf Ihrem

Rechner installieren.

Noch eine Anmerkung in eigener Sache: Für die Hilfe bei der Erstellung die-

ses Buchs bedanke ich mich beim Team des Rheinwerk-Verlags, besonders

bei Anne Scheibe.

Thomas Theis

1.3 Mein erstes Windows-Programm

Anhand eines ersten Projekts werden die Schritte durchlaufen, die zur

Erstellung eines einfachen Programms mithilfe von Visual Basic notwen-

dig sind. Das Programm soll nach dem Aufruf zunächst aussehen wie in

Abbildung 1.1.

Abbildung 1.1 Erstes Programm, nach dem Aufruf

Nach Betätigung des Buttons Hallo soll sich der Text in der obersten Zeile

verändern, siehe Abbildung 1.2.

3703.book Seite 18 Donnerstag, 3. September 2015 2:52 14

1.4 Visual-Basic-Entwicklungsumgebung

19

1

Abbildung 1.2 Nach Betätigung des Buttons »Hallo«

1.4 Visual-Basic-Entwicklungsumgebung

Während der Projekterstellung lernen Sie Schritt für Schritt die Visual-Stu-

dio-Entwicklungsumgebung für Visual Basic kennen.

1.4.1 Ein neues Projekt

Nach dem Aufruf des Programms Visual Studio Community 2015 müssen

Sie zur Erstellung eines neuen Projekts den Menüpunkt Datei • Neues

Projekt • Installiert • Vorlagen • Visual Basic • Windows Forms-

Anwendung auswählen. Als Projektname wird WindowsApplication1 vor-

geschlagen. Sie sollten ihn ändern, z. B. in MeinErstes.

Es erscheinen einige Elemente der Entwicklungsumgebung. Folgende Ele-

mente sind besonders wichtig:

Form� Das Benutzerformular (engl.: Form) enthält die Oberfläche für den Be-

nutzer des Programms (siehe Abbildung 1.3).

Abbildung 1.3 Benutzerformular

Toolbox� Der Werkzeugkasten (engl.: Toolbox) enthält die Steuerelemente für

den Benutzer, mit denen er den Ablauf des Programms steuern kann. Sie

3703.book Seite 19 Donnerstag, 3. September 2015 2:52 14

Page 4: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

1 Einführung

20

werden vom Programmentwickler in das Formular eingefügt (siehe

Abbildung 1.4).

Abbildung 1.4 Werkzeugkasten, mit Kategorien von Steuerelementen

Eigenschaften-

Fenster

� Das Eigenschaften-Fenster (engl.: Properties Window) dient zum An-

zeigen und Ändern der Eigenschaften von Steuerelementen innerhalb

des Formulars durch den Programmentwickler (siehe Abbildung 1.5). Ich

empfehle Ihnen, sich die Eigenschaften in alphabetischer Reihenfolge

anzeigen zu lassen. Dazu einfach das zweite Symbol von links, unter

Form1, betätigen.

Abbildung 1.5 Eigenschaften-Fenster

Projektmappen-

Explorer

� Der Projektmappen-Explorer (engl.: Solution Explorer) zeigt das

geöffnete Projekt und die darin vorhandenen Elemente (siehe Abbil-

dung 1.6).

3703.book Seite 20 Donnerstag, 3. September 2015 2:52 14

1.4 Visual-Basic-Entwicklungsumgebung

21

1

Abbildung 1.6 Projektmappen-Explorer

Elemente anzeigenSollten der Werkzeugkasten, das Eigenschaften-Fenster oder der Pro-

jektmappen-Explorer nicht angezeigt werden, dann können Sie das

betreffende Element über das Menü Ansicht einblenden. Sollte das For-

mular einmal nicht sichtbar sein, können Sie es über einen Doppelklick auf

den Namen (Form1.vb) im Projektmappen-Explorer einblenden. Soll-

ten die Eigenschaften eines Steuerelements nicht im bereits sichtbaren

Eigenschaften-Fenster angezeigt werden, dann markieren Sie zunächst

den Namen der Formulardatei (Form1.vb) im Projektmappen-Explorer

und anschließend das betreffende Steuerelement.

Zunächst werden nur einfache Programme mit wenigen Elementen

geschrieben, daher benötigen Sie den Projektmappen-Explorer noch

nicht. Es empfiehlt sich, das Eigenschaften-Fenster nach oben zu ver-

größern.

1.4.2 Einfügen von Steuerelementen

Label, ButtonZunächst sollen drei Steuerelemente in das Formular eingefügt werden:

ein Bezeichnungsfeld (Label) und zwei Befehlsschaltflächen (Buttons). Ein

Bezeichnungsfeld dient im Allgemeinen dazu, feste oder veränderliche

Texte auf der Benutzeroberfläche anzuzeigen. In diesem Programm soll

das Label einen Text anzeigen. Ein Button dient zum Starten bestimmter

Programmteile oder, allgemeiner ausgedrückt, zum Auslösen von Ereignis-

sen. In diesem Programm sollen die Buttons den Text anzeigen bzw. das

Programm beenden.

Allgemeine Steuer-

elemente

Um ein Steuerelement einzufügen, ziehen Sie es mithilfe der Maus vom

Werkzeugkasten an die gewünschte Stelle im Formular. Alle Steuerele-

mente finden sich im Werkzeugkasten unter Alle Windows Forms.

3703.book Seite 21 Donnerstag, 3. September 2015 2:52 14

Page 5: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

1 Einführung

22

Übersichtlicher ist der Zugriff über Allgemeine Steuerelemente (engl.:

Common Controls), siehe Abbildung 1.7.

Abbildung 1.7 Werkzeugkasten, Kategorie »Allgemeine Steuerelemente«

Steuerelement

auswählen

Ein Doppelklick auf ein Steuerelement im Werkzeugkasten fügt es eben-

falls in die Form ein. Anschließend können Ort und Größe noch verändert

werden. Dazu müssen Sie das betreffende Steuerelement vorher durch

Anklicken ausgewählt haben, siehe Abbildung 1.8. Ein überflüssiges Steuer-

element können Sie durch Auswählen und Drücken der Taste (Entf) ent-

fernen.

Abbildung 1.8 Ausgewählter Button

Die Größe und andere Eigenschaften des Formulars selbst können auch

verändert werden. Dazu müssen Sie es vorher durch Anklicken auf einer

freien Stelle auswählen.

1.4.3 Arbeiten mit dem Eigenschaften-Fenster

Die eingefügten Steuerelemente haben zunächst einheitliche Namen und

Aufschriften, diese sollten allerdings zur einfacheren Programmentwick-

lung geändert werden. Es haben sich bestimmte Namenskonventionen

eingebürgert, welche die Lesbarkeit erleichtern. Diese Namen beinhalten

den Typ (mit drei Buchstaben abgekürzt) und die Aufgabe des Steuerele-

ments (mit großem Anfangsbuchstaben).

3703.book Seite 22 Donnerstag, 3. September 2015 2:52 14

1.4 Visual-Basic-Entwicklungsumgebung

23

1cmd, txt, lbl, ...Ein Button (eigentlich: Command Button), der die Anzeige der Zeit auslö-

sen soll, wird beispielsweise mit cmdZeit bezeichnet. Weitere Vorsilben sind

txt (Textfeld/TextBox), lbl (Bezeichnungsfeld/Label), opt (Optionsschalt-

fläche/RadioButton), frm (Formular/Form) und chk (Kontrollkästchen/

CheckBox).

Zur Änderung des Namens eines Steuerelementes müssen Sie es zunächst

auswählen. Die Auswahl kann entweder durch Anklicken des Steuerele-

ments auf dem Formular oder durch Auswahl aus der Liste am oberen Ende

des Eigenschaften-Fensters geschehen.

Eigenschaften-

Fenster

Im Eigenschaften-Fenster werden alle Eigenschaften des ausgewählten

Steuerelements angezeigt. Die Liste ist zweispaltig: In der linken Spalte

steht der Name der Eigenschaft, in der rechten Spalte ihr aktueller Wert. Die

Eigenschaft (Name) steht am Anfang der Liste der Eigenschaften. Die

betreffende Zeile wird durch Anklicken ausgewählt, und der neue Name

wird eingegeben. Nach Bestätigung mit der Taste (¢) ist die Eigenschaft

geändert, siehe Abbildung 1.9.

Abbildung 1.9 Button, nach der Namensänderung

Eigenschaft TextDie Aufschrift von Buttons, Labels und Formularen ist in der Eigenschaft

Text angegeben. Sobald diese Eigenschaft verändert wird, erscheint die ver-

änderte Aufschrift in dem betreffenden Steuerelement. Auch den Namen

und die Aufschrift des Formulars sollten Sie ändern. Im Folgenden sind die

gewünschten Eigenschaften für die Steuerelemente dieses Programms in

Tabellenform angegeben, siehe Tabelle 1.1.

StartzustandZu diesem Zeitpunkt legen Sie den Startzustand fest, also die Eigenschaf-

ten, welche die Steuerelemente zu Beginn des Programms bzw. eventuell

während des gesamten Programms haben sollen. Viele Eigenschaften kön-

nen Sie auch während der Laufzeit des Programms durch den Programm-

code verändern lassen.

3703.book Seite 23 Donnerstag, 3. September 2015 2:52 14

Page 6: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

1 Einführung

24

Bei einem Label ergibt die Einstellung der Eigenschaft BorderStyle auf

FixedSingle einen Rahmen. Zur Änderung auf FixedSingle müssen Sie die

Liste bei der Eigenschaft aufklappen und den betreffenden Eintrag auswäh-

len, siehe Abbildung 1.10. Zur Änderung einiger Eigenschaften müssen Sie

eventuell sogar ein Dialogfeld aufrufen.

Abbildung 1.10 Label, nach der Änderung von Name und BorderStyle

Im Label soll zunächst der Text (leer) erscheinen. Hierzu müssen Sie den

vorhandenen Text durch Anklicken auswählen und ändern.

Typ Eigenschaft Einstellung

Formular Text Mein Erstes

Button Name cmdHallo

Text Hallo

Button Name cmdEnde

Text Ende

Label Name lblAnzeige

Text (leer)

BorderStyle FixedSingle

Tabelle 1.1 Steuerelemente mit Eigenschaften

3703.book Seite 24 Donnerstag, 3. September 2015 2:52 14

1.4 Visual-Basic-Entwicklungsumgebung

25

1Liste der Steuer-

elemente

Sie finden alle in diesem Formular vorhandenen Steuerelemente in der

Liste, die sich am oberen Ende des Eigenschaften-Fensters öffnen lässt.

Dabei zeigt sich ein Vorteil der einheitlichen Namensvergabe: Die Steuer-

elemente des gleichen Typs stehen direkt untereinander.

1.4.4 Speichern eines Projekts

Alles speichernDie Daten eines Visual-Basic-Projekts werden in verschiedenen Dateien

gespeichert. Zum Speichern des gesamten Projekts wird der Menüpunkt

Datei • Alles Speichern verwendet. Diesen Vorgang sollten Sie in regel-

mäßigen Abständen durchführen, damit keine Änderungen verloren

gehen können.

Die in diesem Skript angegebenen Namen dienen als Empfehlung. Sie

erleichtern die eindeutige Orientierung und das spätere Auffinden von

alten Programmen.

1.4.5 Das Codefenster

EreignisDer Ablauf eines Windows-Programms wird im Wesentlichen durch das

Auslösen von Ereignissen durch den Benutzer gesteuert. Er löst z. B. die

Anzeige des Texts Hallo aus, indem er auf den Button Hallo klickt. Sie als

Entwickler müssen dafür sorgen, dass aufgrund dieses Ereignisses der

gewünschte Text angezeigt wird. Zu diesem Zweck schreiben Sie Pro-

grammcode und ordnen diesen Code dem Ereignis zu. Der Code wird in

einer Ereignisprozedur abgelegt.

EreignisprozedurZum Schreiben einer Ereignisprozedur führen Sie am besten einen Dop-

pelklick auf das betreffende Steuerelement aus. Es erscheint das Code-

fenster. Zwischen der Formular- und der Code-Ansicht können Sie an-

schließend über die Menüpunkte Ansicht • Code bzw. Ansicht • Desi-

gner hin- und herschalten. Das ist auch über die Registerkarten oberhalb

des Formulars bzw. des Codefensters möglich, siehe Abbildung 1.11.

Abbildung 1.11 Registerkarten

3703.book Seite 25 Donnerstag, 3. September 2015 2:52 14

Page 7: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

1 Einführung

26

Nach erfolgtem Doppelklick auf den Button Hallo erscheinen im Code-

fenster folgende Einträge:

Public Class Form1Private Sub cmdHallo_Click(sender As Object,

e As EventArgs) Handles cmdHallo.ClickEnd Sub

End Class

Listing 1.1 Projekt »MeinErstes«, Button »Hallo«, ohne Code

Innerhalb der Ereignisprozedur ist der Platz für den eigenen Programm-

code.

Class VB.NET ist eine objektorientierte Sprache. Ein wichtiges Element objektori-

entierter Sprachen sind Klassen. Alle Elemente des aktuellen Formulars

Form1 stehen innerhalb der Klasse Form1 (zwischen Public Class und End

Class). Auf die Einzelheiten der Objektorientierung wird zu einem späteren

Zeitpunkt eingegangen, da das hier noch nicht notwendig ist und eher ver-

wirren würde.

Sub Der Programmcode der Ereignisprozedur steht später zwischen Private Sub

und End Sub. Der Name der Prozedur besteht aus den zwei Teilen Name des

Steuerelements und Ereignis.

Zeilenumbruch Die Anweisung Private Sub ... ist recht lang, daher wurde sie auf mehrere

Zeilen verteilt. Visual Basic ermöglicht Zeilenumbrüche an bestimmten

Stellen einer Anweisung auf einfache Art und Weise. Das erhöht wesentlich

die Lesbarkeit von Programmen. Aus Druckgründen werden in diesem

Buch häufig längere Anweisungen auf mehrere Zeilen verteilt. Die Regeln

für Zeilenumbrüche finden Sie in Abschnitt 1.4.12. Der anfänglich ausge-

führte Doppelklick führt immer zu dem Ereignis, das am häufigsten mit

dem betreffenden Steuerelement verbunden wird. Das ist beim Button

natürlich das Ereignis Click. Zu einem Steuerelement gibt es aber auch

noch andere mögliche Ereignisse.

Oberhalb von Public Class ... und von Private Sub ... erscheinen seit

Visual Studio 2015 automatisch weitere Informationen zur Klasse Form1

und ihren Elementen in kleiner grauer Schrift, wie zum Beispiel 0 refe-

rences oder 2 references. Auch sie können wir zunächst ignorieren.

3703.book Seite 26 Donnerstag, 3. September 2015 2:52 14

1.4 Visual-Basic-Entwicklungsumgebung

27

11.4.6 Schreiben von Programmcode

In der Prozedur cmdHallo_Click() soll eine Befehlszeile eingefügt werden,

sodass sie anschließend wie folgt aussieht:

Public Class Form1Private Sub cmdHallo_Click(sender As Object,

e As EventArgs) Handles cmdHallo.ClicklblAnzeige.Text = "Hallo"

End SubEnd Class

Listing 1.2 Projekt »MeinErstes«, Button »Hallo«, mit Code

Der Text muss in Anführungszeichen gesetzt werden, da Visual Basic sonst

annimmt, dass es sich um eine Variable mit dem Namen Hallo handelt.

AnweisungDer Inhalt einer Prozedur setzt sich aus einzelnen Anweisungen zusam-

men, die nacheinander ausgeführt werden. Die vorliegende Prozedur ent-

hält nur eine Anweisung; in ihr erfolgt mithilfe des Gleichheitszeichens

eine Zuweisung.

ZuweisungBei einer Zuweisung wird der Ausdruck rechts vom Gleichheitszeichen aus-

gewertet und der Variablen, der Objekt-Eigenschaft oder der Steuerelemen-

teigenschaft links vom Gleichheitszeichen zugewiesen. Die Zeichenkette

Hallo wird der Eigenschaft Text des Steuerelements lblAnzeige mithilfe der

Schreibweise Steuerelement.Eigenschaft = Wert zugewiesen. Das führt zur

Anzeige des Werts.

Nach dem Wechsel auf die Formularansicht können Sie das nächste Steuer-

element auswählen, für das eine Ereignisprozedur geschrieben werden

soll.

Code editierenInnerhalb des Codefensters können Sie Text mit den gängigen Methoden

der Textverarbeitung editieren, kopieren, verschieben und löschen.

SyntaxfehlerSollten Sie bereits bei der Eingabe des Programmcodes Syntaxfehler

gemacht haben, wird das angezeigt. Sie sollten den Code unmittelbar ent-

sprechend korrigieren.

In der Ereignisprozedur cmdEnde_Click() soll der folgende Code stehen:

3703.book Seite 27 Donnerstag, 3. September 2015 2:52 14

Page 8: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

1 Einführung

28

Private Sub cmdEnde_Click(sender As Object,e As EventArgs) Handles cmdEnde.Click

Close()End Sub

Listing 1.3 Projekt »MeinErstes«, Button »Ende«

Die Methode Close() dient zum Schließen eines Formulars. Da es sich um

das einzige Formular dieses Projekts handelt, wird dadurch das Programm

beendet und die gesamte Windows-Anwendung geschlossen.

Me Das aktuelle Objekt einer Klasse wird mit Me bezeichnet. Da wir uns inner-

halb der Klasse für das aktuelle Formular befinden, bezieht sich Me auf die-

ses Formular. Die Anweisung zum Schließen dieses Formulars könnte also

auch lauten: Me.Close(). In vielen Fällen ist Me allerdings überflüssig und

kann weggelassen werden.

Graue Schriftfarbe Seit der Version 2015 von Visual Studio werden überflüssige Elemente im

Programmcode deutlicher gekennzeichnet, indem sie in grauer Schrift-

farbe dargestellt werden. Falls sich der Cursor in der betreffenden Zeile

befindet, dann erscheint links von der Zeile eine gelbe Glühbirne. Platzie-

ren Sie die Maus über dieser Glühbirne, dann wird der Zugang zu Hinwei-

sen ermöglicht, wie die überflüssigen Elemente entfernt werden können.

In Abbildung 1.12 sehen Sie ein Beispiel: Im Programmcode wurde

Me.Close() statt Close() notiert.

Abbildung 1.12 »Me« kann entfernt werden.

Das waren Beispiele zur Änderung der Eigenschaften eines Steuerelements

zur Laufzeit des Programms durch Programmcode. Sie erinnern sich: Zu

Beginn hatten wir die Starteigenschaften der Steuerelemente im Eigen-

schaften-Fenster eingestellt.

3703.book Seite 28 Donnerstag, 3. September 2015 2:52 14

1.4 Visual-Basic-Entwicklungsumgebung

29

11.4.7 Kommentare

Einfaches

Hochkomma

Bei längeren Programmen mit vielen Anweisungen gehört es zum guten

Programmierstil, Kommentarzeilen zu schreiben. In diesen Zeilen werden

einzelne Anweisungen oder auch längere Blöcke von Anweisungen erläu-

tert, damit Sie selbst oder auch ein anderer Programmierer sie später leich-

ter verstehen. Eine Kommentarzeile beginnt mit einem einfachen

Hochkomma. Alle Zeichen bis zum Ende der Zeile werden als Kommentar

angesehen und folglich nicht übersetzt oder ausgeführt.

Der folgende Programmcode wurde um eine Kommentarzeile ergänzt:

Private Sub cmdEnde_Click(sender As Object,e As EventArgs) Handles cmdEnde.Click

' Schließt die AnwendungClose()

End Sub

Listing 1.4 Projekt »MeinErstes«, Button »Ende«, mit Kommentar

Code aus-

kommentieren

Ein kleiner Trick: Sollen bestimmte Programmzeilen für einen Test des Pro-

gramms kurzfristig nicht ausgeführt werden, können Sie sie auskommen-

tieren, indem Sie das Hochkomma vor die betreffenden Zeilen setzen. Das

geht sehr schnell, indem Sie die betreffende(n) Zeile(n) markieren und

anschließend das entsprechende Symbol im linken Bereich der Symbol-

leiste anklicken, siehe Abbildung 1.13. Rechts daneben befindet sich das

Symbol, das die Auskommentierung nach dem Test wieder rückgängig

macht.

Abbildung 1.13 Kommentar ein/aus

1.4.8 Starten, Ausführen und Beenden des Programms

Programm startenNach dem Einfügen der Steuerelemente und dem Erstellen der Ereig-

nisprozeduren ist das Programm fertig, und Sie können es starten. Dazu

wird der Starten-Button in der Symbolleiste (dreieckiger grüner Pfeil nach

rechts) betätigt. Alternativ starten Sie das Programm über die Funktions-

taste (F5) oder den Menüpunkt Debuggen • Debugging starten. Das

Formular erscheint, das Betätigen der Buttons führt zum programmierten

Ergebnis.

3703.book Seite 29 Donnerstag, 3. September 2015 2:52 14

Page 9: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

1 Einführung

30

Programm beenden Zur regulären Beendigung eines Programms dient der Button mit der Auf-

schrift Ende. Möchten Sie ein Programm während des Verlaufs abbrechen,

können Sie auch den End-Button in der Symbolleiste (rotes Quadrat) betä-

tigen.

Fehler Tritt während der Ausführung eines Programms ein Fehler auf, wird das

angezeigt, und das Codefenster zeigt die entsprechende Ereignisprozedur

sowie die fehlerhafte Zeile an. Beenden Sie das Programm, korrigieren Sie

den Code und starten Sie das Programm wieder.

Programm testen Es wird empfohlen, das Programm bereits während der Entwicklung mehr-

mals durch Aufruf zu testen und nicht erst, wenn das Programm vollstän-

dig erstellt worden ist. Geeignete Zeitpunkte sind z. B.

� nach dem Einfügen der Steuerelemente und dem Zuweisen der Eigen-

schaften, die sie zu Programmbeginn haben sollen,

� nach dem Erstellen jeder Ereignisprozedur.

1.4.9 Ausführbares Programm

.exe-Datei Nach erfolgreichem Test des Programms könnten Sie auch die ausführbare

Datei (.exe-Datei) außerhalb der Entwicklungsumgebung aufrufen. Haben

Sie an den Grundeinstellungen nichts verändert und die vorgeschlagenen

Namen verwendet, findet sich die zugehörige .exe-Datei des aktuellen Pro-

jekts im Verzeichnis Eigene Dokumente\Visual Studio 2015\Projects\

MeinErstes\MeinErstes\bin\Debug. Sie können das Programm also im Win-

dows-Explorer direkt über Doppelklick starten.

Die Weitergabe eines eigenen Windows-Programms auf einen anderen PC

ist etwas aufwendiger. Der Vorgang wird im Anhang beschrieben.

1.4.10 Projekt schließen, Projekt öffnen

Projekt schließen Sie können ein Projekt über den Menüpunkt Datei • Projektmappe

schließen schließen. Falls Sie Veränderungen vorgenommen haben, wer-

den Sie gefragt, ob Sie diese Änderungen speichern möchten.

Möchten Sie die Projektdaten sicherheitshalber zwischendurch speichern,

ist das über den Menüpunkt Datei • Alles speichern möglich. Das ist bei

längeren Entwicklungsphasen sehr zu empfehlen.

Projekt öffnen Zum Öffnen eines vorhandenen Projekts wählen Sie den Menüpunkt

Datei • Projekt öffnen. Im darauffolgenden Dialogfeld Projekt öffnen

3703.book Seite 30 Donnerstag, 3. September 2015 2:52 14

1.4 Visual-Basic-Entwicklungsumgebung

31

1wählen Sie zunächst das gewünschte Projektverzeichnis aus und anschlie-

ßend die gleichnamige Datei mit der Endung .sln.

Alle Beispielprojekte finden Sie auf www.rheinwerk-verlag.de/3813 unter

»Materialien zum Buch« zum Download. Sie können diese Projekte auf Ihre

Festplatte kopieren. Sollte eines der Projekte einmal nicht gestartet werden

können, dann sollten Sie es neu über den Menüpunkt Erstellen • Pro-

jektmappe neu erstellen erstellen.

1.4.11 Übung

Übung ÜNameErstellen Sie ein Windows-Programm mit einem Formular, das zwei But-

tons und ein Label beinhaltet, siehe Abbildung 1.14. Bei Betätigung des ers-

ten Buttons erscheint im Label Ihr Name. Bei Betätigung des zweiten

Buttons wird das Programm beendet. Namensvorschläge: Projektname

ÜName, Buttons cmdMyName und cmdEnde, Label lblMyName.

Abbildung 1.14 Übung ÜName

1.4.12 Regeln für Zeilenumbrüche

ZeilenumbruchVisual Basic ermöglicht Zeilenumbrüche an bestimmten Stellen einer

Anweisung auf einfache Art und Weise. Das erhöht die Lesbarkeit des Pro-

grammcodes. Einige Regeln wurden bereits im ersten Programm ange-

wandt. Hier noch einmal die Prozedur cmdHallo_Click():

Private Sub cmdHallo_Click(sender As Object,e As EventArgs) Handles cmdHallo.Click

lblAnzeige.Text = "Hallo"End Sub

Listing 1.5 Projekt »MeinErstes«, Ausschnitt

RegelnEin Zeilenumbruch ist möglich:

� nach einer öffnenden Klammer, siehe erste Prozedurzeile

� vor einer schließenden Klammer, siehe dritte Prozedurzeile

� nach einem Komma, siehe zweite Prozedurzeile

3703.book Seite 31 Donnerstag, 3. September 2015 2:52 14

Page 10: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

1 Einführung

32

Außerdem wäre ein Zeilenumbruch z. B. auch möglich:

� nach den meisten Operatoren, also auch nach dem Zuweisungsoperator

(=) hinter lblAnzeige.Text, siehe Abschnitt 2.2.5

� nach einem Punkt hinter einem Objektnamen, also auch nach dem

Punkt hinter dem Objektnamen lblAnzeige

Auf keinen Fall dürfen Zeilenumbrüche innerhalb einer Zeichenkette

durchgeführt werden. Weitere Möglichkeiten für Zeilenumbrüche werden

jeweils an der passenden Stelle erläutert.

Unterstrich Falls Sie das Zeichen _ (Unterstrich) am Ende einer Zeile notieren, dann

kann anschließend in jedem Fall ein Zeilenumbruch durchgeführt werden,

unabhängig von den oben genannten Regeln.

1.5 Arbeiten mit Steuerelementen

1.5.1 Steuerelemente formatieren

Hilfslinien Zur besseren Anordnung der Steuerelemente auf dem Formular können

Sie sie mithilfe der Maus nach Augenmaß verschieben. Dabei erscheinen

automatisch Hilfslinien, falls das aktuelle Element horizontal oder vertikal

parallel zu einem anderen Element steht.

Mehrere Steuerele-

mente markieren

Weitere Möglichkeiten bieten die Menüpunkte im Menü Format. In vie-

len Fällen müssen vorher mehrere Steuerelemente auf einmal markiert

werden, siehe Abbildung 1.15.

Abbildung 1.15 Mehrere markierte Elemente

Das geschieht entweder

� durch Umrahmung der Elemente mit einem Rechteck, nachdem Sie

zuvor das Steuerelement (Maus-)Zeiger ausgewählt haben, oder

3703.book Seite 32 Donnerstag, 3. September 2015 2:52 14

1.5 Arbeiten mit Steuerelementen

33

1� durch Mehrfachauswahl, indem ab dem zweiten auszuwählenden

Steuerelement die (ª)-Taste (wie für Großbuchstaben) oder die (Strg)-

Taste gedrückt wird.

Menü »Format«Über das Menü Format haben Sie anschließend folgende Möglichkeiten

zur Anpassung der Steuerelemente:

� Die ausgewählten Steuerelemente können horizontal oder vertikal

zueinander ausgerichtet werden (Menü Format • Ausrichten).

� Die horizontalen und/oder vertikalen Dimensionen der ausgewählten

Steuerelemente können angeglichen werden (Menü Format • Größe

angleichen).

Einheitliche

Abstände

� Die horizontalen und vertikalen Abstände zwischen den ausgewählten

Steuerelementen können angeglichen, vergrößert, verkleinert oder ent-

fernt werden (Menü Format • Horizontaler Abstand/Vertikaler

Abstand).

� Die Steuerelemente können horizontal oder vertikal innerhalb des For-

mulars zentriert werden (Menü Format • Auf Formular zentrieren).

� Sollten sich die Steuerelemente teilweise überlappen, können Sie ein-

zelne Steuerelemente in den Vorder- bzw. Hintergrund schieben (Menü

Format • Reihenfolge).

� Sie können alle Steuerelemente gleichzeitig gegen versehentliches Ver-

schieben absichern (Menü Format • Steuerelemente Sperren). Diese

Sperrung gilt nur während der Entwicklung des Programms.

Abbildung 1.16 zeigt ein Formular mit drei Buttons, die alle links ausgerich-

tet sind und im gleichen vertikalen Abstand voneinander stehen.

Abbildung 1.16 Nach der Formatierung

3703.book Seite 33 Donnerstag, 3. September 2015 2:52 14

Page 11: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

1 Einführung

34

Übung

Laden Sie das Projekt MeinErstes aus dem vorherigen Abschnitt, markieren

Sie darin mehrere Steuerelemente und testen Sie die einzelnen Möglich-

keiten des Format-Menüs.

1.5.2 Steuerelemente kopieren

Steuerelemente

kopieren

Zur schnelleren Erzeugung eines Projekts können vorhandene Steuerele-

mente einschließlich aller ihrer Eigenschaften kopiert werden. Markieren

Sie hierzu die gewünschten Steuerelemente und kopieren Sie sie entweder

� über das Menü Bearbeiten • Kopieren und das Menü Bearbeiten •

Einfügen oder

� mit den Tasten (Strg) + (C) und (Strg)+ (V).

Anschließend sollten die neu erzeugten Steuerelemente direkt umbe-

nannt und an der gewünschten Stelle angeordnet werden.

Übung

Laden Sie das Projekt MeinErstes aus Abschnitt 1.4 und kopieren Sie ein-

zelne Steuerelemente. Kontrollieren Sie anschließend die Liste der vorhan-

denen Steuerelemente im Eigenschaften-Fenster auf einheitliche

Namensgebung.

1.5.3 Eigenschaften zur Laufzeit ändern

Size, Location Steuerelemente haben die Eigenschaften Size (mit den Komponenten

Width und Height) und Location (mit den Komponenten X und Y) zur

Angabe von Größe und Position. X und Y geben die Koordinaten der oberen

linken Ecke des Steuerelements an, gemessen von der oberen linken Ecke

des umgebenden Elements (meist das Formular). Alle Werte werden in

Pixeln gemessen.

Alle diese Eigenschaften können sowohl während der Entwicklungszeit als

auch während der Laufzeit eines Projekts verändert werden. Zur Änderung

während der Entwicklungszeit können Sie die Eigenschaft wie gewohnt im

Eigenschaften-Fenster eingeben. Als Beispiel für Änderungen während

der Laufzeit soll das folgende Programm (Projekt Steuerelemente) dienen,

siehe Abbildung 1.17.

3703.book Seite 34 Donnerstag, 3. September 2015 2:52 14

1.5 Arbeiten mit Steuerelementen

35

1

Abbildung 1.17 Position und Größe bestimmen

Der Programmcode:

Public Class Form1Private Sub cmdPositionRel_Click(...) Handles ...

cmdTest.Location = New Point(cmdTest.Location.X + 20, cmdTest.Location.Y)

End SubPrivate Sub cmdPositionAbs_Click(...) Handles ...

cmdTest.Location = New Point(100, 200)End SubPrivate Sub cmdGrößeRel_Click(...) Handles ...

cmdTest.Size = New Size(cmdTest.Size.Width + 20, cmdTest.Size.Height)

End SubPrivate Sub cmdGrößeAbs_Click(...) Handles ...

cmdTest.Size = New Size(50, 100)End Sub

End Class

Listing 1.6 Projekt »Steuerelemente«

Zur Erläuterung:

Verkürzte

Darstellung

� Der Kopf der einzelnen Prozeduren wurde aus Gründen der Übersicht-

lichkeit jeweils in verkürzter Form abgebildet. Das wird bei den meisten

nachfolgenden Beispielen ebenfalls so sein, außer wenn es genau auf die

Inhalte des Prozedurkopfs ankommt.

� Das Formular enthält fünf Buttons. Die oberen vier Buttons dienen der

Veränderung von Position und Größe des fünften Buttons.

3703.book Seite 35 Donnerstag, 3. September 2015 2:52 14

Page 12: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

1 Einführung

36

� Die Position eines Elements kann relativ zur aktuellen Position oder auf

absolute Werte eingestellt werden. Das Gleiche gilt für die Größe eines

Elements.

� Bei beiden Angaben handelt es sich um Wertepaare (X/Y bzw. Breite/Höhe).

New Point � Zur Einstellung der Position dient die Struktur Point. Ein Objekt dieser

Struktur liefert ein Wertepaar. In diesem Programm wird mit New jeweils

ein neues Objekt der Struktur Point erzeugt, um das Wertepaar bereitzu-

stellen.

X, Y � Bei Betätigung des Buttons Position Abs wird die Position des fünften

Buttons auf die Werte X=100 und Y=200 gestellt, gemessen von der linken

oberen Ecke des Formulars.

� Bei Betätigung des Buttons Position Rel wird die Position des fünften

Buttons auf die Werte X = cmdTest.Location.X + 20 und Y = cmdTest.Loca-

tion.Y gestellt. Bei X wird also der alte Wert der Komponente X um 20

erhöht, das Element bewegt sich nach rechts. Bei Y wird der alte Wert der

Komponente Y nicht verändert, das Element bewegt sich nicht nach

oben oder unten.

Width, Height � Zur Einstellung der Größe dient die Struktur Size.

� Bei Betätigung des Buttons Größe Abs wird die Größe des fünften But-

tons auf die Werte Width = 50 und Height = 100 gestellt.

� Bei Betätigung des Buttons Größe Rel wird die Größe des fünften

Buttons auf die Werte Width = cmdTest.Size.Width + 20 und Height =

cmdTest.Size.Height gestellt. Bei Width wird also der alte Wert der Kom-

ponente Width um 20 erhöht, das Element wird breiter. Bei Height wird

der alte Wert der Komponente Height nicht modifiziert, das Element

verändert seine Höhe nicht.

Nach einigen Klicks sieht das Formular aus wie in Abbildung 1.18.

Abbildung 1.18 Veränderung von Eigenschaften zur Laufzeit

3703.book Seite 36 Donnerstag, 3. September 2015 2:52 14

1.5 Arbeiten mit Steuerelementen

37

11.5.4 Vergabe und Verwendung von Namen

Beachten Sie in allen Programmen, dass jedes Steuerelement seinen eige-

nen, eindeutigen Namen hat und immer mit diesem Namen angesprochen

werden muss. Es passiert erfahrungsgemäß besonders am Anfang häufig,

dass ein Programm nicht zum gewünschten Erfolg führt, weil ein nicht vor-

handener Name verwendet wird. In diesem Zusammenhang weise ich

noch einmal auf die Namenskonventionen hin:

� Buttons sollten Namen wie z. B. cmdEnde, cmdAnzeigen, cmdBerechnen usw.

haben.

� Labels sollten Namen wie z. B. lblAnzeige, lblName, lblUhrzeit, lblBe-

ginnDatum haben.

Diese Namen liefern eine eindeutige Information über Typ und Funktion

des Steuerelements. Falls Sie beim Schreiben von Programmcode anschlie-

ßend diese Namen z. B. vollständig in Kleinbuchstaben eingeben, werden

sie nach Verlassen der Zeile automatisch korrigiert. Daran können Sie

schnell erkennen, ob Sie tatsächlich ein vorhandenes Steuerelement ver-

wendet haben.

1.5.5 Verknüpfung von Texten, mehrzeilige Texte

& und vbCrLfEs lassen sich mehrere Texte in einer Ausgabe mithilfe des Zeichens & mit-

einander verknüpfen. Falls Sie eine mehrzeilige Ausgabe wünschen, müs-

sen Sie zusätzlich einen Zeilenvorschub mithilfe der integrierten Visual-

Basic-Konstante vbCrLf eingeben.

Nachfolgend wird das Projekt Steuerelemente um ein Label ergänzt, in dem

die aktuelle Position und Größe des Buttons angezeigt werden. Das soll

nach Betätigung des Buttons Anzeige geschehen:

Public Class Form1[...]

Private Sub cmdAnzeige_Click(...) Handles ...lblAnzeige.Text =

"Position: X: " & cmdTest.Location.X & ", Y: " &cmdTest.Location.Y & vbCrLf & "Größe: Breite: " &cmdTest.Size.Width & ", Höhe: " & cmdTest.Size.Height

End SubEnd Class

Listing 1.7 Projekt »Steuerelemente«, mit Anzeige

3703.book Seite 37 Donnerstag, 3. September 2015 2:52 14

Page 13: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

1 Einführung

38

Nach einigen Klicks und der Betätigung des Buttons Anzeige sieht das For-

mular aus wie in Abbildung 1.19.

Abbildung 1.19 Anzeige der Eigenschaften

1.5.6 Eigenschaft BackColor, Farben allgemein

BackColor Die Hintergrundfarbe eines Steuerelements wird mit der Eigenschaft Back-

Color festgelegt. Dabei können Sie die Farbe zur Entwicklungszeit leicht

mithilfe einer Farbpalette oder aus Systemfarben auswählen.

Color Hintergrundfarben und andere Farben können auch zur Laufzeit einge-

stellt werden, dabei verwenden Sie Farbwerte. Diese Farbwerte können Sie

über die Struktur Color auswählen.

Ein Beispiel, ebenfalls im Projekt Steuerelemente:

Public Class Form1[...]

Private Sub cmdFarbe_Click(...) Handles ...BackColor = Color.YellowlblAnzeige.BackColor = Color.FromArgb(192, 255, 0)

End SubEnd Class

Listing 1.8 Projekt »Steuerelemente«, mit Farben

Zur Erläuterung:

� Diese Struktur bietet vordefinierte Farbnamen als Eigenschaften, z. B.

Yellow. Der Wert kann der Eigenschaft BackColor des Steuerelements

zugewiesen werden, hier ist es das Formular selbst.

FromArgb() � Außerdem bietet die Struktur die Methode FromArgb(). Sie lässt sich auf

verschiedene Arten aufrufen. Eine dieser Arten erwartet genau drei

Parameter, nämlich die Werte für Rot, Grün und Blau, jeweils zwischen 0

und 255.

3703.book Seite 38 Donnerstag, 3. September 2015 2:52 14

1.5 Arbeiten mit Steuerelementen

39

1Das Formular sieht nach der Änderung der Eigenschaft Farbe aus wie in

Abbildung 1.20, wobei sich die Farbänderung bei der Schwarz-Weiß-Dar-

stellung im gedruckten Buch leider nicht gut wiedergeben lässt.

Abbildung 1.20 Nach Änderung der Eigenschaft »Farbe«

3703.book Seite 39 Donnerstag, 3. September 2015 2:52 14

Page 14: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

41

2

Kapitel 2

Grundlagen

In diesem Kapitel erlernen Sie auf anschauliche Weise die Sprachgrund-

lagen von Visual Basic in Verbindung mit den gängigen Steuerelementen

von Windows-Programmen.

In den folgenden Abschnitten lernen Sie wichtige Elemente der Program-

mierung, wie Variablen, Operatoren, Verzweigungen und Schleifen, ge-

meinsam mit wohlbekannten und häufig verwendeten Steuerelementen

kennen.

2.1 Variablen und Datentypen

Variablen dienen zur vorübergehenden Speicherung von Daten, die sich

zur Laufzeit eines Programms ändern können. Eine Variable besitzt einen

eindeutigen Namen, unter dem sie angesprochen werden kann.

2.1.1 Namen und Werte

NamensregelnFür die Namen von Variablen gelten in Visual Basic die folgenden Regeln:

� Sie beginnen mit einem Buchstaben.

� Sie können nur aus Buchstaben, Zahlen und einigen wenigen Sonderzei-

chen (z. B. dem Unterstrich _ ) bestehen.

� Innerhalb eines Gültigkeitsbereichs darf es keine zwei Variablen mit

dem gleichen Namen geben (siehe Abschnitt 2.1.4).

Variablen erhalten ihre Werte durch Zuweisung per Gleichheitszeichen.

Falls eine Variable als Erstes auf der rechten Seite des Gleichheitszeichens

genutzt wird, sollte ihr vorher ein Wert zugewiesen werden. Dadurch wer-

den Programme eindeutiger, lesbarer und fehlerfreier.

3703.book Seite 41 Donnerstag, 3. September 2015 2:52 14

Page 15: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

42

2.1.2 Deklarationen

Neben dem Namen besitzt jede Variable einen Datentyp, der die Art der

Information bestimmt, die gespeichert werden kann. Sie als Entwickler

wählen den Datentyp danach aus, ob Sie Text, Zahlen ohne Nachkomma-

stellen, Zahlen mit Nachkommastellen oder z. B. logische Werte speichern

möchten.

Auswahl des

Datentyps

Außerdem müssen Sie sich noch Gedanken über die Größe des Bereichs

machen, den die Zahl oder der Text annehmen könnte, und über die ge-

wünschte Genauigkeit bei Zahlen. In Abschnitt 2.1.3 finden Sie eine Liste

der Datentypen.

Variablen sollten in Visual Basic immer mit einem Datentyp deklariert wer-

den. Das beugt Fehlern vor, die aufgrund einer falschen Verwendung der

Variablen entstehen könnten.

2.1.3 Datentypen

Die wichtigsten von Visual Basic unterstützten Datentypen lassen sich in

einige große Gruppen unterteilen:

Es gibt Datentypen zur Speicherung von ganzen Zahlen:

� den Datentyp Byte mit Werten von 0 bis 255

� den Datentyp Short mit Werten von –32.768 bis 32.767

Integer � den Datentyp Integer mit Werten von –2.147.483.648 bis 2.147.483.647

� und den Datentyp Long mit Werten von –9.223.372.036.854.775.808 bis

9.223.372.036.854.775.807

Außerdem gibt es Datentypen zur Speicherung von Zahlen mit Nachkom-

mastellen:

� den Datentyp Single mit einfacher Genauigkeit und Werten von

ca. –3,4×1038 bis ca. 3,4×1038

Double � den Datentyp Double, mit doppelter Genauigkeit und Werten von

ca. –1,7×10308 bis ca. 1,7×10308

� und den Datentyp Decimal, mit variabler Genauigkeit und Werten

von ca. –7,9×1028 bis ca. 7.9×1028

3703.book Seite 42 Donnerstag, 3. September 2015 2:52 14

2.1 Variablen und Datentypen

43

2

Einige weitere nützliche Datentypen sind:

� der Datentyp Boolean mit den Werten True oder False (wahr oder falsch)

Date� der Datentyp Date mit Werten für Datumsangaben vom 1. Januar des

Jahres 1 bis zum 31. Dezember 9999

� der Datentyp Char für einzelne Zeichen

String� der Datentyp String für Zeichenketten mit variabler Länge

Im folgenden Beispiel werden Variablen dieser Typen deklariert, mit Wer-

ten versehen und in einem Label angezeigt (Projekt Datentypen).

Public Class Form1Private Sub cmdAnzeige_Click(...) Handles ...

' Ganze ZahlenDim By As ByteDim Sh As ShortDim It As IntegerDim Lg As Long

' Zahlen mit NachkommastellenDim Sg As SingleDim Db As DoubleDim Dm As Decimal

' Boolesche Variable, Datum, Zeichen, ZeichenketteDim Bo As BooleanDim Dt As DateDim Ch As CharDim St As String

' Ganze ZahlenBy = 200Sh = 30000It = 2000000000Lg = 3000000000

' Zahlen mit NachkommastellenSg = 1 / 7Db = 1 / 7Dm = 1D / 7

3703.book Seite 43 Donnerstag, 3. September 2015 2:52 14

Page 16: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

44

' Boolesche Variable, Datum, Zeichen, ZeichenketteBo = TrueDt = "18.02.2015"Ch = "a"St = "Zeichenkette"

lblAnzeige.Text ="Byte: " & By & vbCrLf &"Short: " & Sh & vbCrLf &"Integer: " & It & vbCrLf &"Long: " & Lg & vbCrLf & vbCrLf &"Single: " & Sg & vbCrLf &"Double: " & Db & vbCrLf &"Decimal: " & Dm & vbCrLf & vbCrLf &"Boolean: " & Bo & vbCrLf &"Date: " & Dt & vbCrLf &"Char: " & Ch & vbCrLf &"String: " & St

End SubEnd Class

Listing 2.1 Projekt »Datentypen«

Das Programm hat nach Betätigung des Buttons die Ausgabe wie in Abbil-

dung 2.1 dargestellt.

Abbildung 2.1 Wichtige Datentypen

Zur Erläuterung:

Dim … As � Variablen werden mit Dim ... As ... deklariert. Mehrere Variablen des-

selben Datentyps können, durch Kommata getrennt, innerhalb einer

Zeile deklariert werden (z. B. Dim x, y As Integer).

3703.book Seite 44 Donnerstag, 3. September 2015 2:52 14

2.1 Variablen und Datentypen

45

2

� Variablen können bereits bei der Deklaration einen Wert erhalten, zum

Beispiel: Dim Sh As Short = 30000.

� Bei den Datentypen für ganze Zahlen führt die Zuweisung einer zu

großen Zahl zu einer Fehlermeldung.

Genauigkeit� Die Datentypen für Zahlen mit Nachkommastellen unterscheiden sich

in ihrer Genauigkeit. Nachkommastellen müssen im Programmcode

durch einen Dezimalpunkt abgetrennt werden. In der Ausgabe erscheint

dagegen ein Dezimalkomma. Die Zuweisung einer zu großen oder zu

kleinen Zahl führt zur Anzeige von »Unendlich« bzw. zu einer unge-

nauen Speicherung.

Exponential-

schreibweise

� Sehr große oder sehr kleine Zahlen lassen sich im Programmcode auch

in der Exponentialschreibweise eingeben. Zwei Beispiele: 1.5e3 für

1500.0 oder 1.5e-3 für 0.0015. Beim Wechsel der Zeile werden diese Zah-

len dann unmittelbar in Zahlen mit Nachkommastellen umgewandelt.

� Werte für Zeichen, Zeichenketten und Datumsvariablen müssen in dop-

pelten Anführungszeichen angegeben werden.

� Die Datentypen Integer, Double, Boolean und String werden am häufigs-

ten eingesetzt.

Übung

Übung

ÜDatentypen

Schreiben Sie ein Programm, in dem Ihr Nachname, Vorname, Ihre

Adresse, Ihr Geburtsdatum und Ihr Alter jeweils in Variablen eines geeigne-

ten Datentyps gespeichert und anschließend wie in Abbildung 2.2 ausgege-

ben werden.

Abbildung 2.2 Übung ÜDatentypen

2.1.4 Gültigkeitsbereich

LokalVariablen, die innerhalb einer Prozedur vereinbart wurden, haben ihre

Gültigkeit nur in der Prozedur. Außerhalb der Prozedur sind sowohl Name

als auch Wert unbekannt. Solche Variablen bezeichnet man auch als lokale

3703.book Seite 45 Donnerstag, 3. September 2015 2:52 14

Page 17: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

46

Variablen. Sobald die Prozedur abgearbeitet wurde, steht der Wert auch

nicht mehr zur Verfügung. Beim nächsten Aufruf derselben Prozedur wer-

den diese Variablen neu deklariert und erhalten neue Werte.

Static Anders verhält es sich mit statischen Variablen. Sie behalten ihren Wert, so-

lange das Programm läuft. Ein wiederholter Aufruf derselben Prozedur

kann auf den letzten gespeicherten Wert einer Variablen zugreifen. Eine

statische Variable vereinbaren Sie z. B. wie folgt: Static Sx As Integer.

Private, Dim Variablen, die außerhalb von Prozeduren vereinbart werden, sind inner-

halb der gesamten Klasse gültig, hier also innerhalb der Klasse des Formu-

lars. Ihr Wert kann in jeder Prozedur gesetzt oder abgerufen werden und

bleibt erhalten, solange das Formular im laufenden Programm existiert.

Sie können die Variablen sowohl mit dem Schlüsselwort Private als auch

mit dem Schlüsselwort Dim deklarieren. Sie sind außerhalb der Klasse nicht

gültig. Weitere Einzelheiten zu klassenweit gültigen Variablen finden Sie in

Kapitel 5.

Public Variablen, die mit dem Schlüsselwort Public vereinbart werden, sind öf-

fentlich. Damit sind sie auch außerhalb der jeweiligen Klasse gültig, also

z. B. in anderen Formularen. Mehr dazu ebenfalls in Kapitel 5.

Gibt es in einem Programmabschnitt mehrere Variablen mit dem gleichen

Namen, gelten folgende Regeln:

� Lokale Variablen mit gleichem Namen in der gleichen Prozedur sind

nicht zulässig.

Ausblenden � Eine klassenweit gültige Variable wird innerhalb einer Prozedur von

einer lokalen Variablen mit dem gleichen Namen ausgeblendet.

Im folgenden Beispiel werden Variablen unterschiedlicher Gültigkeitsbe-

reiche deklariert, an verschiedenen Stellen verändert und ausgegeben (Pro-

jekt Gültigkeitsbereich).

Public Class Form1Private Mx As Integer

Private Sub cmdAnzeigen1_Click(...) Handles ...Static Sx As IntegerDim x As IntegerSx = Sx + 1Mx = Mx + 1x = x + 1

3703.book Seite 46 Donnerstag, 3. September 2015 2:52 14

2.1 Variablen und Datentypen

47

2

lblAnzeige.Text = "Sx: " & Sx & " x: " & x & " Mx: " & MxEnd Sub

Private Sub cmdAnzeigen2_Click(...) Handles ...Dim Mx As IntegerMx = Mx + 1lblAnzeige.Text = "Mx: " & Mx

End SubEnd Class

Listing 2.2 Projekt »Gültigkeitsbereich«

Zur Erläuterung:

� In der ersten Prozedur wird der Wert der statischen Variablen Sx und der

klassenweit gültigen Variablen Mx bei jedem Aufruf erhöht. Die lokale

Variable x wird immer wieder auf 1 gesetzt, siehe Abbildung 2.3.

Abbildung 2.3 Lokale, statische und klassenweit gültige Variable

� In der zweiten Prozedur blendet die lokale Variable Mx die gleichnamige

klassenweit gültige Variable aus. Die lokale Variable wird immer wieder

auf 1 gesetzt, siehe Abbildung 2.4.

Abbildung 2.4 Lokale Variable

Startwert setzenHinweis: Die Variablen wurden vor ihrer ersten Benutzung nicht initia-

lisiert, d. h., sie wurden nicht mit einem Startwert besetzt. In Visual Basic

haben Zahlenvariablen zwar automatisch den Startwert 0, trotzdem soll-

ten Sie die Initialisierung im Sinne eines sauberen Programmierstils im

Normalfall selbst vornehmen.

3703.book Seite 47 Donnerstag, 3. September 2015 2:52 14

Page 18: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

48

Übung

Übung ÜGültig-

keitsbereich

Erstellen Sie ein Programm, in dem zwei Buttons, ein Label und drei Varia-

blen eines geeigneten Datentyps eingesetzt werden:

� die klassenweit gültige Variable x

� die Variable y, die nur lokal in der Prozedur zum Click-Ereignis des ers-

ten Buttons gültig ist

� die Variable z, die nur lokal in der Prozedur zum Click-Ereignis des zwei-

ten Buttons gültig ist

In der ersten Prozedur werden x und y jeweils um 0,1 erhöht und angezeigt,

siehe Abbildung 2.5. In der zweiten Prozedur werden x und z jeweils um 0,1

erhöht und angezeigt, siehe Abbildung 2.6.

Abbildung 2.5 Ausgabe der ersten Methode nach einigen Klicks

Abbildung 2.6 Ausgabe der zweiten Methode nach weiteren Klicks

2.1.5 Konstanten

Konstanten reprä-

sentieren Werte

Konstanten sind vordefinierte Werte, die während der Laufzeit nicht ver-

ändert werden können. Geben Sie Konstanten im Allgemeinen aussage-

kräftige Namen, dadurch sind sie leichter zu behalten als die Werte, die sie

repräsentieren. Konstanten werden an einer zentralen Stelle definiert und

können an verschiedenen Stellen des Programms genutzt werden. Somit

müssen Sie eine eventuelle Änderung einer Konstanten zur Entwurfszeit

nur an einer Stelle vornehmen. Der Gültigkeitsbereich von Konstanten ist

analog zum Gültigkeitsbereich von Variablen.

3703.book Seite 48 Donnerstag, 3. September 2015 2:52 14

2.1 Variablen und Datentypen

49

2

Integrierte

Konstanten

Zu den Konstanten zählen auch die integrierten Konstanten, wie z. B.

vbCrLf. Auch sie repräsentieren Zahlen, die aber nicht so einprägsam sind

wie die Namen der Konstanten.

Im folgenden Beispiel werden mehrere Konstanten vereinbart und genutzt

(Projekt Konstanten).

Public Class Form1Private Const MaxWert = 75Private Const Eintrag = "Picture"

Private Sub cmdKonstanten_Click(...) Handles ...Const MaxWert = 55Const MinWert = 5lblAnzeige.Text = (MaxWert - MinWert) / 2 &

vbCrLf & EintragEnd Sub

End Class

Listing 2.3 Projekt »Konstanten«

Zur Erläuterung:

Const� Konstanten werden mithilfe des Schlüsselworts Const definiert.

� Die Konstanten MaxWert und Eintrag werden mit klassenweiter Gültig-

keit festgelegt.

� Innerhalb der Prozedur werden die beiden lokalen Konstanten MaxWert

und MinWert festgelegt. MaxWert blendet die klassenweit gültige Kon-

stante gleichen Namens aus, wie es in unten stehender Abbildung 2.7 zu

sehen ist.

� Außerdem kommt noch die integrierte Konstante vbCrLf zum Ein-

satz.

Abbildung 2.7 Konstanten

3703.book Seite 49 Donnerstag, 3. September 2015 2:52 14

Page 19: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

50

2.1.6 Enumerationen

Konstanten

aufzählen

Enumerationen sind Aufzählungen von Konstanten, die thematisch zu-

sammengehören. Alle Enumerationen haben den gleichen Datentyp, der

ganzzahlig sein muss. Bei der Deklaration werden ihnen Werte zugewiesen,

am besten explizit.

Innerhalb von Visual Basic gibt es zahlreiche vordefinierte Enumerationen.

Ähnlich wie bei den integrierten Konstanten sind die Namen der Enumera-

tionen und deren Elemente besser lesbar als die durch sie repräsentierten

Zahlen.

Ein Beispiel: Die Enumeration DialogResult ermöglicht es Ihnen als Pro-

grammierer, die zahlreichen möglichen Antworten des Benutzers beim

Einsatz von Windows-Standarddialogfeldern (Ja, Nein, Abbrechen, Wie-

derholen, Ignorieren, ...) anschaulich einzusetzen.

Im folgenden Programm wird mit einer eigenen und einer vordefinierten

Enumeration gearbeitet (ebenfalls im Projekt Konstanten).

Public Class Form1[...]

Private Enum Zahl As IntegerEins = 1Zwei = 2Drei = 3Vier = 4

End Enum[...]

Private Sub cmdEnumeration1_Click(...) Handles ...lblAnzeige.Text = Zahl.Zwei * Zahl.Drei

End Sub

Private Sub cmdEnumeration2_Click(...) Handles ...lblAnzeige.Text = "Sonntag: " & FirstDayOfWeek.Sunday &

", Samstag: " & FirstDayOfWeek.SaturdayEnd Sub

End Class

Listing 2.4 Projekt »Konstanten«, Teil 2

3703.book Seite 50 Donnerstag, 3. September 2015 2:52 14

2.2 Operatoren

51

2

Zur Erläuterung:

Enum� Enumerationen werden mithilfe des Schlüsselworts Enum definiert.

� Es wird die Enumeration Zahl vom Datentyp Integer vereinbart. Da es

sich um einen Typ handelt und nicht um eine Variable oder Konstante,

muss sie außerhalb von Prozeduren vereinbart werden. Damit ist sie

automatisch für die gesamte Klasse gültig.

� In der ersten Ereignisprozedur werden zwei Elemente der eigenen Enu-

meration Zahl verwendet. Die beiden Zahlen, die sie repräsentieren, wer-

den miteinander multipliziert, siehe Abbildung 2.8.

Abbildung 2.8 Erste Enumeration

� In der zweiten Ereignisprozedur werden zwei Elemente der vordefinier-

ten Enumeration FirstDayOfWeek verwendet, siehe Abbildung 2.9. Sie

können sie zur Ermittlung des Wochentags eines gegebenen Datums

verwenden.

Abbildung 2.9 Zweite Enumeration

2.2 Operatoren

Zum Zusammensetzen von Ausdrücken nutzt Visual Basic, wie jede andere

Programmiersprache auch, Operatoren. In diesem Buch wurden schon die

Operatoren = für Zuweisungen und & für Verkettungen verwendet.

PrioritätEs gibt verschiedene Kategorien von Operatoren. Vorrangregeln (Prioritä-

ten) sind für die Reihenfolge der Abarbeitung zuständig, falls mehrere Ope-

ratoren innerhalb eines Ausdrucks eingesetzt werden. Diese Vorrangregeln

sind weiter unten in diesem Abschnitt angegeben. Falls Sie sich bei der Ver-

3703.book Seite 51 Donnerstag, 3. September 2015 2:52 14

Page 20: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

52

wendung dieser Regeln nicht sicher sind, empfiehlt es sich, durch eigene

Klammersetzung die Reihenfolge explizit festzulegen.

2.2.1 Rechenoperatoren

Rechenoperatoren Rechenoperatoren dienen zur Durchführung von Berechnungen, siehe Ta-

belle 2.1.

Ganzzahldivision Die Ganzzahldivision erfolgt in zwei Schritten. Im ersten Schritt werden Di-

vidend und Divisor einzeln gerundet. Im zweiten Schritt werden die beiden

verbliebenen Zahlen geteilt, anschließend werden die Ziffern nach dem

Komma abgeschnitten.

Tabelle 2.2 zeigt einige Beispiele.

Modulo Der Modulo-Operator Mod berechnet den Rest einer Division. Zwei Beispiele

sehen Sie in Tabelle 2.3.

Operator Beschreibung

+ Addition

- Subtraktion oder Negation

* Multiplikation

/ Division

\ Ganzzahldivision

^ Potenzierung

Mod Modulo

Tabelle 2.1 Rechenoperatoren

Ausdruck Ergebnis

19 / 4 4.75

19 \ 4 4

19 \ 4.6 3

19.5 \ 4.2 5

Tabelle 2.2 Ganzzahldivision

3703.book Seite 52 Donnerstag, 3. September 2015 2:52 14

2.2 Operatoren

53

2

Zur Potenzierung einer Zahl dient der Operator ^ (hoch), Beispiele siehe Ta-

belle 2.4.

Multiplikation und Division innerhalb eines Ausdrucks sind gleichrangig

und werden von links nach rechts in der Reihenfolge ihres Auftretens aus-

gewertet. Dasselbe gilt für Additionen und Subtraktionen, die zusammen

in einem Ausdruck auftreten. Multiplikation und Division werden vor Ad-

dition und Subtraktion ausgeführt.

KlammernMit Klammern können Sie diese Rangfolge außer Kraft setzen, damit be-

stimmte Teilausdrücke vor anderen Teilausdrücken ausgewertet werden.

In Klammern gesetzte Operationen haben grundsätzlich Vorrang. Inner-

halb der Klammern gilt jedoch die normale Rangfolge der Operatoren.

ProjektAlle Berechnungen innerhalb dieses Abschnitts können Sie auch mithilfe

des Codes im Projekt Rechenoperatoren nachvollziehen.

Übung

Übung ÜRechen-

operatoren

Berechnen Sie die beiden folgenden Ausdrücke, speichern Sie das Ergebnis

in einer Variablen eines geeigneten Datentyps und zeigen Sie es an:

� 1. Ausdruck: 3 * –2.5 + 4 * 2

� 2. Ausdruck: 3 * (-2.5 + 4) * 2

Ausdruck Ergebnis Erklärung

19 Mod 4 3 19 durch 4 ist 4 Rest 3

19.5 Mod 4.2 2.7 19,5 durch 4,2 ist 4 Rest 2,7

Tabelle 2.3 Modulo-Operator

Ausdruck Ergebnis

2 ^ 5 32

3 ^ 2 ^ 3 729

2 ^ 5.4 42.2242531447326

(-2) ^ 5 -32

Tabelle 2.4 Potenzierung

3703.book Seite 53 Donnerstag, 3. September 2015 2:52 14

Page 21: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

54

2.2.2 Vergleichsoperatoren

Vergleich Vergleichsoperatoren (siehe Tabelle 2.5) dienen dazu festzustellen, ob be-

stimmte Bedingungen zutreffen oder nicht. Das Ergebnis lässt sich u. a. zur

Ablaufsteuerung von Programmen nutzen. Abschnitt 2.4 geht hierauf ge-

nauer ein.

Einige Beispiele sehen Sie in Tabelle 2.6.

Like Darüber hinaus gibt es noch den Operator Like, der zum Mustervergleich

dient. Dabei können Sie u. a. die Platzhalter * (eines oder mehrere Zeichen)

und ? (genau ein Zeichen) einsetzen. Tabelle 2.7 zeigt einige Beispiele.

Operator Beschreibung

< kleiner als

<= kleiner als oder gleich

> größer als

>= größer als oder gleich

= gleich

<> ungleich

Tabelle 2.5 Vergleichsoperatoren

Ausdruck Ergebnis

5 > 3 True

3 = 3.2 False

5 + 3 * 2 >= 12 False

Tabelle 2.6 Nutzung von Vergleichsoperatoren

Ausdruck Ergebnis

"abxba" Like "a*a" True

"abxba" Like "a?a" False

Tabelle 2.7 Mustervergleich

3703.book Seite 54 Donnerstag, 3. September 2015 2:52 14

2.2 Operatoren

55

2

ProjektAlle Vergleiche innerhalb dieses Abschnitts können Sie auch mithilfe des

Codes im Projekt Vergleichsoperatoren nachvollziehen.

Übung

Übung ÜVergleichs-

operatoren

Ermitteln Sie das Ergebnis der beiden folgenden Ausdrücke, speichern Sie

es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an:

� 1. Ausdruck: 12 – 3 >= 4 * 2.5

� 2. Ausdruck: "Maier" Like "M??er"

2.2.3 Logische Operatoren

LogikLogische Operatoren dienen dazu, mehrere Bedingungen zusammenzufas-

sen. Das Ergebnis lässt sich ebenfalls u. a. zur Ablaufsteuerung von Pro-

grammen nutzen (siehe hierzu auch Abschnitt 2.4). Die logischen

Operatoren sehen Sie in Tabelle 2.8.

Es seien die Variablen A = 1, B = 3 und C = 5 gesetzt. Die Ausdrücke in der ers-

ten Spalte von Tabelle 2.9 ergeben dann jeweils die Ergebnisse in der zwei-

ten Spalte.

"aba" Like "a?a" True

"asdlfigc" Like "a?d?f*c" True

Ausdruck Ergebnis

Tabelle 2.7 Mustervergleich (Forts.)

Operator Beschreibung Das Ergebnis ist True, wenn ...

Not Nicht ... der Ausdruck False ist.

And Und ... beide Ausdrücke True sind.

Or Inklusives Oder ... mindestens ein Ausdruck True ist.

Xor Exklusives Oder ... genau ein Ausdruck True ist.

Tabelle 2.8 Logische Operatoren

3703.book Seite 55 Donnerstag, 3. September 2015 2:52 14

Page 22: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

56

Projekt Alle Berechnungen innerhalb dieses Abschnitts können Sie auch mithilfe

des Codes im Projekt LogischeOperatoren nachvollziehen.

Übung

Übung ÜLogische

Operatoren

Ermitteln Sie das Ergebnis der beiden folgenden Ausdrücke, speichern Sie

es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an:

� 1. Ausdruck: 4 > 3 And –4 > –3

� 2. Ausdruck: 4 > 3 Or –4 > –3

2.2.4 Verkettungsoperator

Umwandlung

in String

Der Operator & dient der Verkettung von Zeichenfolgen. Ist einer der Aus-

drücke keine Zeichenfolge, sondern eine Zahl oder Datumsangabe, wird er

in einen String verwandelt. Das Gesamtergebnis ist dann wiederum eine

Zeichenfolge. Beispiel:

Public Class Form1Private Sub cmdAnzeige_Click(...) Handles ...

Dim gesamt As StringDim s As SingleDim i As IntegerDim d As Dates = 4.6i = -12d = "18.07.2015"gesamt = "Hallo " & s & " " & i & " " & dlblAnzeige.Text = gesamt

End SubEnd Class

Listing 2.5 Projekt »Verkettungsoperator«

Ausdruck Ergebnis

Not (A < B) False

(B > A) And (C > B) True

(B < A) Or (C < B) False

(B < A) Xor (C > B) True

Tabelle 2.9 Ausdrücke mit logischen Operatoren

3703.book Seite 56 Donnerstag, 3. September 2015 2:52 14

2.2 Operatoren

57

2

Das Ergebnis ist in Abbildung 2.10 zu sehen. Ein weiteres Beispiel stand be-

reits in Abschnitt 1.5.5.

Abbildung 2.10 Verkettung

2.2.5 Zuweisungsoperatoren

Zeichen =Der einfachste Zuweisungsoperator, das Gleichheitszeichen, wurde bereits

genutzt. Es gibt zur Verkürzung von Anweisungen noch einige weitere Zu-

weisungsoperatoren, siehe Tabelle 2.10.

2.2.6 Rangfolge der Operatoren

PrioritätEnthält ein Ausdruck mehrere Operationen, werden die einzelnen Teilaus-

drücke in einer bestimmten Rangfolge ausgewertet und aufgelöst, die als

Rangfolge bzw. Priorität der Operatoren bezeichnet wird. Es gilt die Rang-

folge in Tabelle 2.11.

Operator Beispiel Ergebnis

= x = 7 x erhält den Wert 7.

+= x += 5 Der Wert von x wird um 5 erhöht.

-= x -= 5 Der Wert von x wird um 5 verringert.

*= x *= 3 Der Wert von x wird auf das Dreifache erhöht.

/= x /= 3 Der Wert von x wird auf ein Drittel verringert.

\= x \= 3 Der Wert von x wird auf ein Drittel verringert.

Nachkommastellen werden abgeschnitten.

^= x ^= 3 Der Wert von x wird auf x hoch 3 erhöht.

&= z &= "abc" Die Zeichenkette z wird um den Text abc ver-

längert.

Tabelle 2.10 Zuweisungsoperatoren

3703.book Seite 57 Donnerstag, 3. September 2015 2:52 14

Page 23: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

58

Die Operatoren, die in der Tabelle weiter oben stehen, haben die höchste

Priorität.

Klammern Wie schon bei den Rechenoperatoren erwähnt: Mit Klammern können Sie

diese Rangfolge außer Kraft setzen, damit bestimmte Teilausdrücke vor an-

deren Teilausdrücken ausgewertet werden.

In Klammern gesetzte Operationen haben grundsätzlich Vorrang. Inner-

halb der Klammern gilt jedoch wieder die normale Rangfolge der Opera-

toren.

Übung

Übung ÜOperatoren Sind die Bedingungen in Tabelle 2.12 wahr oder falsch? Lösen Sie die Auf-

gabe möglichst ohne PC.

Operator Beschreibung

^ Exponentialoperator

- negatives Vorzeichen

*, / Multiplikation, Division

\ Ganzzahldivision

Mod Modulo

+, - Addition, Subtraktion

& Verkettung

=, <>, <, >, <=, >=, Like

Vergleichsoperatoren (Das Zeichen = steht für den Vergleich, nicht für die Zuweisung.)

Not logisches Nicht

And logisches Und

Or logisches Oder

Tabelle 2.11 Rangfolge der Operatoren

Nr. Werte Bedingung

1 a=5 b=10 a>0 And b<>10

2 a=5 b=10 a>0 Or b<>10

Tabelle 2.12 Übung ÜOperatoren

3703.book Seite 58 Donnerstag, 3. September 2015 2:52 14

2.3 Einfache Steuerelemente

59

2

2.3 Einfache Steuerelemente

Windows-Programmierung mit Visual Basic besteht aus zwei Teilen: der

Arbeit mit visuellen Steuerelementen und der Programmierung mit der

Sprache. Beides soll in diesem Buch parallel vermittelt werden, damit die

eher theoretischen Abschnitte zur Programmiersprache durch eine an-

schauliche Praxis vertieft werden können.

Daher wird in diesem Abschnitt mit vier weiteren Steuerelementen ge-

arbeitet, bevor im nächsten Abschnitt die Verzweigungen zur Pro-

grammsteuerung vorgestellt werden: Panel, Zeitgeber, Textfeld und

Zahlenauswahlfeld.

2.3.1 Panel

ContainerEin Panel dient normalerweise als Container für andere Steuerelemente. In

diesem Abschnitt wird es zur visuellen Darstellung eines Rechtecks und für

eine kleine Animation genutzt.

Die Eigenschaften BackColor (Hintergrundfarbe), Location (Position) und

Size (Größe) sind schon von anderen Steuerelementen bekannt.

Mithilfe des nachfolgenden Programms im Projekt Panel wird ein Panel

durch Betätigung von vier Buttons um 10 Pixel nach oben, unten, links

oder rechts verschoben. Es hat die Größe 100 × 100 Pixel, die Startposition

X=145 und Y=80 sowie eine eigene Hintergrundfarbe. Die Bewegung wird

mithilfe der Struktur Point durchgeführt.

3 z=10 w=100 z<>0 Or z>w Or w-z=90

4 z=10 w=100 z=11 And z>w Or w-z=90

5 x=1.0 y=5.7 x>=.9 And y<=5.8

6 x=1.0 y=5.7 x>=.9 And Not(y<=5.8)

7 n1=1 n2=17 n1>0 And n2>0 Or n1>n2 And n2<>17

8 n1=1 n2=17 n1>0 And (n2>0 Or n1>n2) And n2<>17

Nr. Werte Bedingung

Tabelle 2.12 Übung ÜOperatoren (Forts.)

3703.book Seite 59 Donnerstag, 3. September 2015 2:52 14

Page 24: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

60

In Abbildung 2.11 und Abbildung 2.12 ist das Panel im Startzustand bzw.

nach einigen Klicks zu sehen.

Abbildung 2.11 Panel, Startzustand

Abbildung 2.12 Panel, nach Verschiebung

Der Programmcode:

Public Class Form1Private Sub cmdOben_Click(...) Handles ...

panMove.Location = New Point(panMove.Location.X,panMove.Location.Y - 10)

End Sub

Private Sub cmdUnten_Click(...) Handles ...panMove.Location = New Point(panMove.Location.X,

panMove.Location.Y + 10)End Sub

3703.book Seite 60 Donnerstag, 3. September 2015 2:52 14

2.3 Einfache Steuerelemente

61

2

Private Sub cmdLinks_Click(...) Handles ...panMove.Location = New Point(panMove.Location.X - 10,

panMove.Location.Y)End Sub

Private Sub cmdRechts_Click(...) Handles ...panMove.Location = New Point(panMove.Location.X + 10,

panMove.Location.Y)End Sub

End Class

Listing 2.6 Projekt »Panel«

2.3.2 Zeitgeber

TimerEin Zeitgeber (engl.: Timer) erzeugt in festgelegten Abständen Zeittakte.

Diese Zeittakte sind Ereignisse, die Sie als Entwickler mit Aktionen verbin-

den können. Das zugehörige Ereignis heißt Tick. Ein Zeitgeber kann wie je-

des andere Steuerelement zum Formular hinzugefügt werden. Da es sich

aber um ein nicht sichtbares Steuerelement handelt, wird er unterhalb des

Formulars angezeigt. Auch zur Laufzeit ist er nicht sichtbar.

IntervallSeine wichtigste Eigenschaft ist das Zeitintervall, in dem das Ereignis auf-

treten soll. Dieses Zeitintervall wird in Millisekunden angegeben.

EnabledDie Eigenschaft Enabled dient der Aktivierung bzw. Deaktivierung des Zeit-

gebers. Sie kann zur Entwicklungszeit oder zur Laufzeit auf True oder False

gestellt werden.

Im nachfolgenden Programm im Projekt Zeitgeber erscheint zunächst ein

Formular mit zwei Buttons. Betätigt man den Start-Button, erscheint ein x

in einem Bezeichnungsfeld. Alle 0,5 Sekunden erscheint automatisch ein

weiteres x, siehe Abbildung 2.13. Das wird durch den Timer gesteuert, bei

dem der Wert für die Eigenschaft Interval auf 500 gesetzt wurde. Nach Be-

tätigung des Stop-Buttons kommt kein weiteres x hinzu.

Abbildung 2.13 Nach einigen Sekunden

3703.book Seite 61 Donnerstag, 3. September 2015 2:52 14

Page 25: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

62

Der zugehörige Code:

Public Class Form1Private Sub timAnzeige_Tick(...) Handles timAnzeige.Tick

lblAnzeige.Text &= "x"End Sub

Private Sub cmdStart_Click(...) Handles ...timAnzeige.Enabled = True

End Sub

Private Sub cmdStop_Click(...) Handles ...timAnzeige.Enabled = False

End SubEnd Class

Listing 2.7 Projekt »Zeitgeber«

Übung

Übung ÜPanel-

Zeitgeber

Erstellen Sie eine Windows-Anwendung. In der Mitte eines Formulars sol-

len zu Beginn vier Panels verschiedener Farbe der Größe 20 × 20 Pixel plat-

ziert werden, siehe Abbildung 2.14.

Abbildung 2.14 Startzustand

Sobald der Start-Button betätigt wird, sollen diese vier Panels sich diagonal

in ca. 5–10 Sekunden zu den Ecken des Formulars bewegen, jedes Panel in

eine andere Ecke, siehe Abbildung 2.15.

3703.book Seite 62 Donnerstag, 3. September 2015 2:52 14

2.3 Einfache Steuerelemente

63

2

Abbildung 2.15 Nach einigen Sekunden

Übung

Übung ÜKranDiese Übung gehört nicht zum Pflichtprogramm. Sie ist etwas umfangrei-

cher, verdeutlicht aber die Möglichkeiten einer schnellen Visualisierung

von Prozessen durch Visual Basic mit wenigen Programmzeilen.

Konstruieren Sie aus mehreren Panels einen Kran (Fundament, senkrech-

tes Hauptelement, waagerechter Ausleger, senkrechter Haken am Ausle-

ger). Der Benutzer soll die Möglichkeit haben, über insgesamt acht Buttons

die folgenden Aktionen auszulösen:

� Haken um 10 Pixel ausfahren bzw. einfahren

� Ausleger um 10 Pixel ausfahren bzw. einfahren

� Kran um 10 Pixel nach rechts bzw. links fahren

� Kran um 10 Pixel in der Höhe ausfahren bzw. einfahren

Denken Sie daran, dass bei vielen Bewegungen mehrere Steuerelemente

bewegt werden müssen, da der Kran sonst seinen Zusammenhalt verliert.

Manche Aktionen resultieren nur aus Größenveränderungen (Eigenschaf-

ten Width und Height), manche nur aus Ortsveränderungen (Location),

manche aus beidem. In Abbildung 2.16 und Abbildung 2.17 sehen Sie den

Kran im Startzustand bzw. nach einigen Klicks.

Es können natürlich immer noch widersprüchliche Bewegungen auftreten.

Mit weiter zunehmendem Programmierwissen können Sie diesen Proble-

men später noch abhelfen.

3703.book Seite 63 Donnerstag, 3. September 2015 2:52 14

Page 26: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

64

Abbildung 2.16 Startzustand

Abbildung 2.17 Nach einigen Aktionen

2.3.3 Textfelder

Eingabefeld Ein Textfeld dient in erster Linie dazu, die Eingabe von Text oder Zahlen

vom Benutzer entgegenzunehmen. Diese Eingaben werden in der Eigen-

schaft Text des Textfelds gespeichert. Das Aussehen und das Verhalten ei-

nes Textfelds werden u. a. durch folgende Eigenschaften gekennzeichnet:

� MultiLine: Steht MultiLine auf True, kann bei der Eingabe und bei der

Anzeige mit mehreren Textzeilen gearbeitet werden.

� ScrollBars: Ein Textfeld lässt sich mit vertikalen und/oder horizontalen

Bildlaufleisten zur Eingabe und Anzeige längerer Texte versehen.

3703.book Seite 64 Donnerstag, 3. September 2015 2:52 14

2.3 Einfache Steuerelemente

65

2

� MaxLength: Mit dieser Eigenschaft lässt sich die Anzahl der Zeichen des

Textfelds beschränken. Ist keine Beschränkung vorgesehen, kann das

Textfeld 32K Zeichen aufnehmen.

Passwort� PasswordChar: Falls für diese Eigenschaft im Entwurfsmodus ein Platz-

halterzeichen eingegeben wurde, wird während der Laufzeit für jedes

eingegebene Zeichen nur dieser Platzhalter angezeigt. Diese Eigenschaft

wird vor allem bei Passwort-Abfragen verwendet.

Der Inhalt eines Textfelds kann mit den gewohnten Mitteln (z. B. (Strg) + (C)

und (Strg) + (V)) in die Zwischenablage kopiert bzw. aus der Zwischenablage

eingefügt werden.

Im nachfolgenden Programm im Projekt Textfelder kann der Benutzer in

einem Textfeld einen Text eingeben. Nach Betätigung des Buttons Aus-

gabe wird der eingegebene Text in einem zusammenhängenden Satz aus-

gegeben, siehe Abbildung 2.18.

Abbildung 2.18 Eingabe in Textfeld

Der Code lautet wie folgt:

Public Class Form1Private Sub cmdAusgabe_Click(...) Handles ...

lblAusgabe.Text = "Sie haben '" & txtEingabe.Text &"' eingegeben"

End SubEnd Class

Listing 2.8 Projekt »Textfelder«

Zur Erläuterung:

� Die Eigenschaft Text des Textfelds speichert die Eingabe. Die Eigenschaft

wird in einen längeren Ausgabetext eingebettet.

3703.book Seite 65 Donnerstag, 3. September 2015 2:52 14

Page 27: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

66

Zahlen eingeben Bei der Eingabe und Auswertung von Zahlen sind einige Besonderheiten zu

beachten. Im nachfolgenden Programm, ebenfalls im Projekt Textfelder,

kann der Benutzer in einem Textfeld eine Zahl eingeben. Nach Betätigung

des Buttons Rechnen wird der Wert dieser Zahl verdoppelt, das Ergebnis

wird in einem Label darunter ausgegeben.

Private Sub cmdRechnen1_Click(...) Handles ...lblAusgabe.Text = txtEingabe.Text * 2

End Sub

Listing 2.9 Projekt »Textfelder«, Zahleneingabe

Zur Erläuterung:

� Wenn eine Zeichenkette eingegeben wird, die eine Zahl darstellt, dann

wird sie implizit, d. h. automatisch, in eine Zahl umgewandelt, mit der

dann gerechnet werden kann.

� Stellt die eingegebene Zeichenkette keine Zahl dar, kommt es zu einem

Laufzeitfehler. Diese Situation sollten Sie natürlich vermeiden:

– Sie können vorher überprüfen, ob es sich bei der Zeichenkette um

eine gültige Zahl handelt und entsprechend reagieren. Das wird mög-

lich, sobald Sie Verzweigungen zur Programmsteuerung beherr-

schen.

Ausnahme-

behandlung

– Allgemein können Sie Programme so schreiben, dass ein Programm-

abbruch abgefangen werden kann. Das wird möglich, sobald Sie die

Ausnahmebehandlung (siehe hierzu Kapitel 3) beherrschen.

Einige Beispiele:

Abbildung 2.19 zeigt die Eingabe einer Zahl mit Nachkommastellen.

Abbildung 2.19 Eingabe einer Zahl mit Nachkommastellen

Debugging beenden Die Eingabe einer Zeichenkette, z. B. abc, führt zur Anzeige einer nicht be-

handelten Ausnahme. Die Zeile, in der der Fehler auftritt, wird im Code

markiert, damit der Fehler beseitigt werden kann (siehe Abbildung 2.20).

3703.book Seite 66 Donnerstag, 3. September 2015 2:52 14

2.3 Einfache Steuerelemente

67

2

Abbildung 2.20 Anzeige des Fehlers

Es erscheint ein zusätzliches Dialogfeld. Darin können Sie den Button Wei-

ter betätigen, dann wird das Programm beendet. Mit dem Button Unter-

brechen wird das Programm unterbrochen. Bei einem unterbrochenen

Programm können Sie die aktuellen Werte von Variablen kontrollieren, in-

dem Sie die Maus über dieser Variablen platzieren. Anschließend muss das

Programm über den Menüpunkt Debuggen • Debugging beenden been-

det werden, bevor es sich neu starten lässt.

Die Eingabe einer Zahl, bei der ein Punkt statt einem Komma zur Abtren-

nung von Nachkommastellen eingegeben wird, führt zu einem ganz ande-

ren Rechenergebnis, siehe Abbildung 2.21. Der Punkt wird ignoriert, die

Zahl wird als 352 angesehen und führt so zu dem Ergebnis 704.

Abbildung 2.21 Punkt vor den Nachkommastellen

ToDouble()Sie sollten dafür sorgen, dass der Inhalt des Textfelds explizit in eine Zahl

(mit möglichen Nachkommastellen) umgewandelt wird. Das erreichen Sie

mithilfe der Methode ToDouble() aus der Klasse Convert. Die Klasse Convert

bietet eine Reihe von Methoden für die Umwandlung (= Konvertierung) in

andere Datentypen.

Private Sub cmdRechnen2_Click(...) Handles ...lblAusgabe.Text = Convert.ToDouble(txtEingabe.Text) * 2

End Sub

Listing 2.10 Projekt »Textfelder«, Methode ToDouble()

3703.book Seite 67 Donnerstag, 3. September 2015 2:52 14

Page 28: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

68

Zur Erläuterung:

� Der eingegebene Text wird mit der Methode ToDouble() in eine Zahl

umgewandelt.

� Allerdings ist nach wie vor ein Programmabbruch bei falscher Eingabe

möglich.

2.3.4 Zahlenauswahlfeld

NumericUpDown Das Steuerelement Zahlenauswahlfeld (NumericUpDown) bietet eine andere

Möglichkeit, Zahlenwerte an ein Programm zu übermitteln. Die Zahlen-

werte können innerhalb selbst gewählter Grenzen und in selbst definierten

Schritten über zwei kleine Pfeiltasten ausgewählt werden. Sie können aber

auch weiterhin eingegeben werden, wie bei einem Textfeld.

Wichtige Eigenschaften des Steuerelements sind die folgenden:

Value � Value bezeichnet zur Entwicklungszeit den Startwert und zur Laufzeit

den vom Benutzer aktuell eingestellten Wert.

� Maximum, Minimum bestimmen den größtmöglichen Wert und den kleinst-

möglichen Wert der Eigenschaft Value. Es handelt sich also um die

Werte, die durch die Auswahl mit den Pfeiltasten ganz oben und ganz

unten erreicht werden können.

� Increment stellt die Schrittweite ein, mit der sich der Wert (Eigenschaft

Value) ändert, wenn der Benutzer eine der kleinen Pfeiltasten betätigt.

� DecimalPlaces bestimmt die Anzahl der Nachkommastellen in der

Anzeige des Zahlenauswahlfelds.

ValueChanged Das wichtigste Ereignis dieses Steuerelements ist ValueChanged. Es tritt bei

der Veränderung der Eigenschaft Value ein und sollte anschließend zur

Programmsteuerung verwendet werden.

Im nachfolgenden Programm im Projekt ZahlenAufAb werden alle diese

Eigenschaften und das genannte Ereignis genutzt. Der Benutzer kann

Zahlenwerte zwischen -5,0 und +5,0 in Schritten von 0,1 über ein Zahlen-

auswahlfeld einstellen. Der ausgewählte Wert wird unmittelbar in einem

Label angezeigt, siehe Abbildung 2.22.

3703.book Seite 68 Donnerstag, 3. September 2015 2:52 14

2.4 Verzweigungen

69

2

Abbildung 2.22 Zahlenauswahlfeld

Die Eigenschaften werden zur Entwicklungszeit wie folgt eingestellt:

� Value: Wert 2, die Anwendung startet also bei dem Wert 2,0 für das Zah-

lenauswahlfeld

� Maximum, Minimum: Werte -5 und +5

� Increment: Wert 0,1

� DecimalPlaces: Wert 1, zur Anzeige einer einzelnen Nachkommastelle

Der Code lautet:

Public Class Form1Private Sub numEingabe_ValueChanged(...) _

Handles numEingabe.ValueChangedlblAusgabe.Text = numEingabe.Value

End SubEnd Class

Listing 2.11 Projekt »ZahlenAufAb«

2.4 Verzweigungen

Der Programmcode wurde bisher rein sequenziell abgearbeitet, d. h. eine

Anweisung nach der anderen. Kontrollstrukturen ermöglichen eine Steue-

rung dieser Reihenfolge. Die Kontrollstrukturen unterteilen sich in Ver-

zweigungen und Schleifen. Verzweigungen gestatten dem Programm, in

verschiedene alternative Anweisungsblöcke zu verzweigen.

Es gibt die beiden Verzweigungsstrukturen If ... Then ... Else und Select

Case ... Diese Auswahlmöglichkeiten übergeben u. a. aufgrund von Bedin-

gungen die Programmausführung an einen bestimmten Anweisungs-

block. Bedingungen erstellen Sie mithilfe der bereits vorgestellten

Vergleichsoperatoren.

Seltener genutzt werden außerdem noch die Auswahlfunktionen IIf()

und Choose().

3703.book Seite 69 Donnerstag, 3. September 2015 2:52 14

Page 29: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

70

2.4.1 Einzeiliges If ... Then ... Else

Das einzeilige If ... Then ... Else hat folgenden Aufbau:

If Bedingung Then Anweisungen1 [ Else Anweisungen2 ]

If ... Then ... Else Die Bedingung wird ausgewertet, sie ist entweder wahr oder falsch (True

oder False). Ist das Ergebnis der Auswertung True, wird der Then-Teil mit

den Anweisungen1 ausgeführt. Ist das Ergebnis der Auswertung False und

gibt es einen Else-Teil, wird der Else-Teil mit den Anweisungen2 ausgeführt.

Dabei kann es sich sowohl um eine einzelne Anweisung als auch um meh-

rere Anweisungen handeln, die dann durch einen Doppelpunkt (:) vonein-

ander getrennt sind. In jedem Fall muss der gesamte Block in einer Zeile

untergebracht werden. If-Strukturen können auch ineinander verschach-

telt werden.

Unterstrich Im nachfolgenden Programm im Projekt EinzeiligesIf wird das einzeilige If

in vier verschiedenen Beispielen genutzt. Beachten Sie dabei, dass die ein-

zelnen Anweisungen zu lang für den Druck in diesem Buch sind und daher

auf mehrere Zeilen verteilt werden, teilweise auch mithilfe des Zeichens _

(Unterstrich). Es handelt sich aber in jedem Fall um einzeilige If-Verzwei-

gungen.

Public Class Form1Private Sub cmdAnzeige1_Click(...) Handles ...

Dim x As Integerx = -1If x < 0 Then lblAnz1.Text = "Negativ"

End Sub

Private Sub cmdAnzeige2_Click(...) Handles ...Dim x As Integerx = -1If x > 0 Then lblAnz2.Text = "Positiv" _

Else lblAnz2.Text = "Negativ oder Null"End Sub

Private Sub cmdAnzeige3_Click(...) Handles ...Dim x As Integerx = -1If x > 0 Then lblAnz3.Text = "Positiv" Else If x = 0 Then _

3703.book Seite 70 Donnerstag, 3. September 2015 2:52 14

2.4 Verzweigungen

71

2

lblAnz3.Text = "Null" Else lblAnz3.Text = "Negativ"End Sub

Private Sub cmdAnzeige4_Click(...) Handles ...Dim x As Integerx = -1If x > 0 Then x = x + 1 : lblAnz4.Text =

"Positiv, x = " & x Else x = x - 1 : lblAnz4.Text ="Negativ oder Null, x = " & x

End SubEnd Class

Listing 2.12 Projekt »EinzeiligesIf«

Zur Erläuterung:

� Die Integer-Variable x erhält jeweils den Wert -1. Für die Tests in den ein-

zelnen Beispielen sollten Sie diesen Wert natürlich auch einmal ändern.

� Beim ersten Beispiel wird nur etwas angezeigt, falls die Variable x nega-

tiv ist.

� Beim zweiten Beispiel wird in jedem Fall etwas angezeigt.

� Beim dritten Beispiel wird für den Fall, dass die Variable x nicht positiv

ist, eine weitere Verzweigung durchlaufen. Man nennt diese Verzwei-

gung auch eine innere Verzweigung, im Gegensatz zu einer äußeren

Verzweigung. Ist die Variable x = 0, wird wegen der inneren Verzweigung

Null angezeigt, anderenfalls wird Negativ angezeigt.

� Beim vierten Beispiel werden für beide möglichen Fälle jeweils zwei

Anweisungen durchlaufen, die durch einen : (Doppelpunkt) voneinan-

der getrennt sind.

In Abbildung 2.23 sehen Sie die Ausgabe nach Betätigung aller vier Buttons.

Abbildung 2.23 Einzeiliges If

3703.book Seite 71 Donnerstag, 3. September 2015 2:52 14

Page 30: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

72

2.4.2 If...Then...Else-Block

Mehrzeilig, Block Für einfache Entscheidungen und einzelne Anweisungen eignet sich das

einzeilige If. Sobald mehrere Anweisungen auszuführen sind, wird der

Programmcode schnell unübersichtlich. Für diese Zwecke ist ein

If...Then...Else-Block wesentlich besser geeignet. Der Block hat folgen-

den Aufbau:

If Bedingung1 ThenAnweisungen1

[ ElseIf Bedingung2Anweisungen2 ] ...

[ ElseAnweisungenX ]

End If

Das Programm verzweigt zu den Anweisungen hinter der ersten zutreffen-

den Bedingung. Falls keine Bedingung zutrifft, werden die Anweisungen

hinter dem Else ausgeführt, sofern es diesen Else-Zweig gibt. Anderenfalls

wird keine Anweisung durchgeführt. Ein If...Then...Else-Block endet

immer mit einem End If.

Das nachfolgende Programm im Projekt BlockIf prüft vier verschiedene

Fälle. Trifft keiner dieser Fälle zu, wird der Else-Zweig ausgeführt:

Public Class Form1Private Sub cmdAnzeige_Click(...) Handles ...

Dim x, y As Integerx = 0y = 0If x >= 0 And y >= 0 Then

lblAnzeige.Text = "Beide größer oder gleich Null"ElseIf x >= 0 And y < 0 Then

lblAnzeige.Text = "Nur X größer oder gleich Null"ElseIf x < 0 And y >= 0 Then

lblAnzeige.Text = "Nur Y größer oder gleich Null"ElseIf x >= 0 Then

lblAnzeige.Text = "Wird nie angezeigt"Else

lblAnzeige.Text = "Beide kleiner Null"End If

3703.book Seite 72 Donnerstag, 3. September 2015 2:52 14

2.4 Verzweigungen

73

2

End SubEnd Class

Listing 2.13 Projekt »BlockIf«

In Abbildung 2.24 sehen Sie die Ausgabe nach Betätigung des Buttons.

Abbildung 2.24 If...Then...Else-Block

2.4.3 Select Case

MehrfachauswahlEine Verzweigung kann in bestimmten Fällen auch mit Select Case ... ge-

bildet werden. Diese Struktur vereinfacht eine Mehrfachauswahl, wenn

nur ein Wert untersucht werden muss, und ist wie folgt aufgebaut:

Select Case Testausdruck[ Case Ausdrucksliste1

Anweisungen1 ][ Case Ausdrucksliste2

Anweisungen2 ] ...[ Case Else

AnweisungenX ]End Select

To, IsDie Struktur Select Case ... verwendet nur einen Testausdruck, der am Be-

ginn der Struktur ausgewertet wird. Sein Wert wird anschließend der Reihe

nach mit den Werten der Ausdruckslisten verglichen. Eine Ausdrucksliste

kann aus mehreren Ausdrücken oder einer Bereichsangabe mit dem

Schlüsselwort To bestehen. Ein Ausdruck kann aus einem Wert oder einer

Bedingung mit dem Schlüsselwort Is bestehen.

End SelectBei der ersten Übereinstimmung wird der zugehörige Anweisungsblock

ausgeführt und dann wird mit der nächsten Anweisung hinter dem End Se-

lect fortgefahren.

Case ElseDer optionale Anweisungsblock hinter dem Case Else wird ausgeführt, falls

vorher keine Übereinstimmung gefunden wurde. Das nachfolgende Pro-

3703.book Seite 73 Donnerstag, 3. September 2015 2:52 14

Page 31: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

74

gramm im Projekt SelectCase prüft ebenfalls vier verschiedene Fälle. Trifft

keiner dieser Fälle zu, wird der Case-Else-Zweig ausgeführt:

Public Class Form1Private Sub cmdAnzeige_Click(...) Handles ...

Dim x As Integerx = 20Select Case x

Case 1, 3, 5, 7, 9lblAnzeige.Text = "Ungerade, Einstellig"

Case 2, 4, 6, 8lblAnzeige.Text = "Gerade, Einstellig"

Case Is < 1, Is > 20lblAnzeige.Text = "Kleiner 1 oder größer 20"

Case 10 To 15lblAnzeige.Text = "Größer gleich 10 und" &

" kleiner gleich 15"Case Else

lblAnzeige.Text = "Größer 15 und kleiner 21"End Select

End SubEnd Class

Listing 2.14 Projekt »SelectCase«

In diesem Beispiel sind nur die Zahlen größer 15 und kleiner 21 in keiner

Ausdrucksliste enthalten. Der entsprechende Text befindet sich also im

Case-Else-Zweig, wie Sie in Abbildung 2.25 sehen.

Abbildung 2.25 Auswahl mit Select ... Case

2.4.4 Funktion IIf

Liefert Wert Die Funktion IIf() ähnelt dem einzeiligen If ... Then ... Else, liefert aber

im Unterschied zu diesem direkt einen Wert zurück. Ihre Syntax lautet:

IIf(Bedingung, True-Ausdruck, False-Ausdruck)

3703.book Seite 74 Donnerstag, 3. September 2015 2:52 14

2.4 Verzweigungen

75

2

Sowohl True-Ausdruck als auch False-Ausdruck müssen angegeben wer-

den. Im nachfolgenden Programm im Projekt FunktionIIf wird das Maxi-

mum der beiden Zahlen x und y ermittelt und ausgegeben:

Public Class Form1Private Sub cmdAnzeige_Click(...) Handles ...

Dim x, y As Integerx = 5y = 3lblAnzeige.Text = IIf(x > y, x, y)

End SubEnd Class

Listing 2.15 Projekt »FunktionIIf«

2.4.5 Funktion Choose

Wert aus ListeDie Funktion Choose() gibt den Wert aus einer Liste zurück, dessen Position

dem Indexwert entspricht. Die Positionen in der Liste beginnen allerdings

bei 1, nicht bei 0. Die Syntax lautet:

Choose(Index, Ausdruck1, [Ausdruck2] ...)

Im nachfolgenden Programm im Projekt FunktionChoose wird eine Wäh-

rung aus einer Liste von Währungen ausgewählt und ausgegeben:

Public Class Form1Private Sub cmdAnzeige_Click(...) Handles ...

Dim x As Integerx = 2lblAnzeige.Text = Choose(x, "US Dollar", "Pfund", "Euro")

End SubEnd Class

Listing 2.16 Projekt »FunktionChoose«

Zur Erläuterung:

� Der Wert x = 2 führt zur Ausgabe von Pfund.

3703.book Seite 75 Donnerstag, 3. September 2015 2:52 14

Page 32: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

76

2.4.6 Übungen

Übung ÜSteuerbetrag

Übung ÜSteuer-

betrag

Schreiben Sie ein Programm, das zu einem eingegebenen Gehalt den Steu-

erbetrag berechnet und ausgibt, siehe Abbildung 2.26. In Tabelle 2.13 sind

die Steuersätze angegeben. Es wird davon ausgegangen, dass das gesamte

Gehalt zum angegebenen Satz versteuert wird. Erstellen Sie das Programm

in zwei Versionen: mithilfe von If Else beziehungsweise mithilfe von

Select Case.

Abbildung 2.26 Übung ÜSteuerbetrag

Übung ÜKranVerzweigung

Übung ÜKran-

Verzweigung

Erweitern Sie die Übung ÜKran. Die Bewegung des Krans soll kontrolliert

werden. Kein Teil des Krans darf zu groß oder zu klein werden. Der Kran

darf sich nicht über die sinnvollen Begrenzungen hinausbewegen. Nutzen

Sie Bedingungen und Verzweigungen, um das zu verhindern.

2.5 Verzweigungen und Steuerelemente

In diesem Abschnitt geht es um Kontrollkästchen und Optionsschaltflä-

chen bzw. Gruppen von Optionsschaltflächen. Damit können Sie Zustände

Gehalt Steuersatz

von 0 € bis einschließlich 12.000 € 12 %

von über 12.000 € bis einschließlich 20.000 € 15 %

von über 20.000 € bis einschließlich 30.000 € 20 %

über 30.000 € 25 %

Tabelle 2.13 Übung ÜSteuerbetrag

3703.book Seite 76 Donnerstag, 3. September 2015 2:52 14

2.5 Verzweigungen und Steuerelemente

77

2

unterscheiden bzw. Eigenschaften einstellen. Dazu benötigen Sie Verzwei-

gungen, die Gegenstand des vorherigen Abschnitts waren.

2.5.1 Kontrollkästchen

CheckBoxDas Kontrollkästchen (CheckBox) bietet dem Benutzer die Möglichkeit,

zwischen zwei Zuständen zu wählen, z. B. An oder Aus, wie bei einem Schal-

ter. Sie können damit auch kennzeichnen, ob Sie eine bestimmte optionale

Erweiterung wünschen oder nicht. Der Benutzer bedient ein Kontrollkäst-

chen, indem er ein Häkchen setzt oder entfernt.

CheckedChangedDas wichtigste Ereignis ist beim Kontrollkästchen nicht der Click, sondern

das Ereignis CheckedChanged. Dieses Ereignis zeigt nicht nur an, dass der Be-

nutzer das Kontrollkästchen bedient hat, sondern auch, dass es seinen Zu-

stand geändert hat. Das kann beispielsweise auch durch Programmcode

geschehen. Eine Ereignisprozedur zu CheckedChanged löst in jedem Fall et-

was aus, sobald das Kontrollkästchen (vom Benutzer oder vom Programm-

code) geändert wird.

An/AusAllerdings wird der Programmablauf meist so gestaltet, dass bei einem an-

deren Ereignis der aktuelle Zustand des Kontrollkästchens (An/Aus) abge-

fragt und anschließend entsprechend reagiert wird.

Die wichtigen Eigenschaften des Kontrollkästchens sind:

Checked� Checked – der Zustand der CheckBox, mit den Werten True und False

� Text – die Beschriftung neben dem Kontrollkästchen

Das Projekt Kontrollkästchen nutzt alle oben genannten Möglichkeiten,

siehe Abbildung 2.27.

Abbildung 2.27 Zustand nach Klick auf Kontrollkästchen

3703.book Seite 77 Donnerstag, 3. September 2015 2:52 14

Page 33: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

78

Der Programmcode:

Public Class Form1Private Sub cmdPrüfen_Click(...) Handles ...

If chkSchalter.Checked ThenlblTest1.Text = "An"

ElselblTest1.Text = "Aus"

End IfEnd Sub

Private Sub chkSchalter_CheckedChanged(...) _Handles chkSchalter.CheckedChanged

If chkSchalter.Checked ThenlblTest2.Text = "An"

ElselblTest2.Text = "Aus"

End IfEnd Sub

Private Sub cmdUmschalten_Click(...) Handles ...chkSchalter.Checked = Not chkSchalter.Checked

End SubEnd Class

Listing 2.17 Projekt »Kontrollkästchen«

Zur Erläuterung:

� Den Zustand eines Kontrollkästchens (Häkchen gesetzt oder nicht) kön-

nen Sie im Programm mithilfe einer einfachen Verzweigung auswerten.

Wahrheitswert � Normalerweise werden bei einer Bedingung in einer Verzweigung zwei

Werte durch Vergleichsoperatoren miteinander verglichen und eines

der beiden Ergebnisse True oder False ermittelt. Da die Eigenschaft

Checked aber bereits einem solchen Wahrheitswert entspricht, kann die

Bedingung auch verkürzt formuliert werden. If chkSchalter.Checked =

True ... hätte also das gleiche Ergebnis erzeugt.

� Die Prozedur cmdPrüfenClick() wird aufgerufen, wenn der Benutzer den

Button Schalter prüfen betätigt. Erst in diesem Moment wird der

Zustand des Kontrollkästchens (Eigenschaft Checked gleich True oder

3703.book Seite 78 Donnerstag, 3. September 2015 2:52 14

2.5 Verzweigungen und Steuerelemente

79

2

False) abgefragt und im ersten Label ausgegeben. Es kann also sein, dass

das Kontrollkästchen vor längerer Zeit oder noch nie benutzt wurde.

� Dagegen wird die Prozedur chkSchalter_CheckedChanged() sofort aufge-

rufen, wenn der Benutzer das Kontrollkästchen benutzt, also ein Häk-

chen setzt oder entfernt. Die Prozedur wird auch dann aufgerufen, wenn

der Benutzer den Zustand des Kontrollkästchens durch Programmcode

ändert. Hier wird der Zustand des Kontrollkästchens also unmittelbar

nach der Änderung ausgegeben (im zweiten Label).

� Die Prozedur cmdUmschalten_Click() dient zum Umschalten des Kon-

trollkästchens per Programmcode. Das kommt in Windows-Anwendun-

gen häufig vor, wenn es logische Zusammenhänge zwischen mehreren

Steuerelementen gibt. Die Eigenschaft Checked wird mithilfe des logi-

schen Operators Not auf True bzw. auf False gesetzt. Das führt wiederum

zum Ereignis chkSchalter_CheckedChanged und dem Ablauf der zugehöri-

gen, oben erläuterten Ereignisprozedur.

2.5.2 Optionsschaltfläche

RadioButtonOptionsschaltflächen (RadioButtons) treten immer in Gruppen auf und

bieten dem Benutzer die Möglichkeit, zwischen zwei oder mehr Möglich-

keiten zu wählen, etwa zwischen den Farben Rot, Grün oder Blau. Bei zu-

sammengehörigen Optionsschaltflächen kann der Benutzer genau eine

per Klick auswählen. Alle anderen werden dann unmittelbar als Nicht aus-

gewählt gekennzeichnet.

CheckedChangedAnalog zum Kontrollkästchen ist das wichtigste Ereignis bei einer Options-

schaltfläche CheckedChanged. Dieses Ereignis zeigt an, dass die betreffende

Optionsschaltfläche ihren Zustand geändert hat. Das kann auch durch Pro-

grammcode geschehen.

Der Programmablauf wird hier meist so gestaltet, dass bei einem anderen

Ereignis die aktuelle Auswahl innerhalb der Gruppe abgefragt wird und an-

schließend je nach Zustand unterschiedlich reagiert wird.

Es ist guter Programmierstil und verringert Folgefehler, wenn Sie eine der

Optionsschaltflächen der Gruppe bereits zur Entwicklungszeit auf True set-

zen. Das muss nicht notwendigerweise die erste Optionsschaltfläche der

Gruppe sein.

CheckedDie wichtigen Eigenschaften der Optionsschaltflächen sind Checked (mit

den Werten True und False) und Text (zur Beschriftung). Das nachfolgende

3703.book Seite 79 Donnerstag, 3. September 2015 2:52 14

Page 34: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

80

Programm im Projekt Optionen nutzt alle genannten Möglichkeiten. Es

wird der Zustand angezeigt, nachdem der Benutzer

� Blau gewählt,

� den Button Prüfen betätigt und

� Grün gewählt hat (siehe Abbildung 2.28).

Abbildung 2.28 Zustand nach den genannten Aktionen

Der Programmcode:

Public Class Form1Private Sub cmdPrüfen_Click(...) Handles ...

If optFarbeRot.Checked ThenlblAnzeige1.Text = "Rot"

ElseIf optFarbeGrün.Checked ThenlblAnzeige1.Text = "Grün"

ElselblAnzeige1.Text = "Blau"

End IfEnd Sub

Private Sub optFarbeRot_CheckedChanged(...) Handles ...If optFarbeRot.Checked Then

lblAnzeige2.Text = "Rot"End If

End Sub

Private Sub optFarbeGrün_CheckedChanged(...) Handles ...If optFarbeGrün.Checked Then

lblAnzeige2.Text = "Grün"End If

End Sub

3703.book Seite 80 Donnerstag, 3. September 2015 2:52 14

2.5 Verzweigungen und Steuerelemente

81

2

Private Sub optFarbeBlau_CheckedChanged(...) Handles ...If optFarbeBlau.Checked Then

lblAnzeige2.Text = "Blau"End If

End Sub

Private Sub cmdSchalter_Click(...) Handles ...optFarbeRot.Checked = True

End SubEnd Class

Listing 2.18 Projekt »Optionen«

Zur Erläuterung:

Auswahl oder

Abwahl

� Den Zustand einer einzelnen Optionsschaltfläche können Sie im Pro-

gramm mithilfe einer einfachen Verzweigung auswerten. Es muss

festgestellt werden, ob diese Optionsschaltfläche ausgewählt oder ab-

gewählt wurde. In beiden Fällen tritt das Ereignis CheckedChanged auf.

� Den Zustand einer Gruppe von Optionsschaltflächen können Sie im Pro-

gramm mithilfe einer mehrfachen Verzweigung auswerten.

� Die Prozedur cmdPrüfen_Click() wird aufgerufen, wenn der Benutzer

den Button Prüfen betätigt. Erst in diesem Moment wird der Zustand

der Gruppe abgefragt und im ersten Label ausgegeben.

� Dagegen wird eine der Prozeduren optFarbeRot_CheckedChanged() (bzw.

... Grün ... oder ... Blau ...) sofort aufgerufen, wenn der Benutzer eine

der Optionsschaltflächen auswählt. Diese Prozeduren werden jeweils

auch dann aufgerufen, wenn der Benutzer den Zustand der zugehörigen

Optionsschaltfläche durch Programmcode ändert. Hier wird der

Zustand der Gruppe also unmittelbar nach der Änderung ausgegeben

(im zweiten Label).

� Die Prozedur cmdSchalter_Click() dient der Auswahl einer bestimmten

Optionsschaltfläche per Programmcode. Das kommt in Windows-

Anwendungen häufig vor, wenn es logische Zusammenhänge zwischen

mehreren Steuerelementen gibt. Die Eigenschaft Checked wird auf True

gesetzt. Das führt wiederum zum Ereignis CheckedChanged der jeweiligen

Optionsschaltfläche und zum Ablauf der zugehörigen, oben erläuterten

Ereignisprozedur.

3703.book Seite 81 Donnerstag, 3. September 2015 2:52 14

Page 35: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

82

Innerhalb eines Formulars oder einer GroupBox (siehe Abschnitt 2.5.4)

kann immer nur bei einer Optionsschaltfläche die Eigenschaft Checked den

Wert True haben. Sobald eine andere Optionsschaltfläche angeklickt wird,

ändert sich der Wert der Eigenschaft bei der bisher gültigen Optionsschalt-

fläche.

2.5.3 Mehrere Ereignisse in einer Prozedur behandeln

Das folgende Projekt MehrereEreignisse stellt eine häufig verwendete Tech-

nik vor. Gibt es mehrere Ereignisse, die auf die gleiche oder auf ähnliche

Weise behandelt werden sollen, ist es vorteilhaft, diese Ereignisse mit einer

gemeinsamen Ereignisprozedur aufzurufen.

Handles Das ist möglich, da nach dem Schlüsselwort Handles zu Beginn der Ereig-

nisprozedur mehrere Ereignisse genannt werden können. Das nachfol-

gende Programm verwendet diese Technik, um den Zustand einer Gruppe

von Optionsschaltflächen sofort anzuzeigen, wenn der Benutzer eine der

Optionsschaltflächen auswählt, siehe Abbildung 2.29.

Abbildung 2.29 Mehrere Ereignisse in einer Prozedur

Der Programmcode:

Public Class Form1Private Sub optFarbeRot_CheckedChanged(...) _

Handles optFarbeRot.CheckedChanged,optFarbeGrün.CheckedChanged,optFarbeBlau.CheckedChanged

If optFarbeRot.Checked ThenlblAnzeige.Text = "Rot"

ElseIf optFarbeGrün.Checked ThenlblAnzeige.Text = "Grün"

ElselblAnzeige.Text = "Blau"

3703.book Seite 82 Donnerstag, 3. September 2015 2:52 14

2.5 Verzweigungen und Steuerelemente

83

2

End IfEnd Sub

End Class

Listing 2.19 Projekt »MehrereEreignisse«

Zur Erläuterung:

� Die Prozedur optFarbeRot_CheckedChanged() wird durch alle drei

CheckedChanged-Ereignisse aufgerufen.

2.5.4 Mehrere Gruppen von Optionsschaltflächen

Falls in den beiden letzten Programmen weitere Optionsschaltflächen hin-

zugefügt werden, gilt nach wie vor: Nur eine der Optionsschaltflächen ist

ausgewählt.

ContainerBenötigen Sie aber innerhalb eines Formulars mehrere voneinander unab-

hängige Gruppen von Optionsschaltflächen, wobei in jeder der Gruppen je-

weils nur eine Optionsschaltfläche ausgewählt sein soll, müssen Sie jede

Gruppe einzeln in einen Container setzen. Ein Formular ist bereits ein Con-

tainer, wir benötigen also einen weiteren Container.

GroupBoxAls ein solcher Container kann beispielsweise das Steuerelement Gruppe

(GroupBox) dienen. Mit der Zuweisung der Eigenschaft Text der GroupBox

geben Sie eine Beschriftung an.

ZuordnungFalls eine GroupBox markiert ist, dann wird eine neu erzeugte Options-

schaltfläche dieser GroupBox zugeordnet und reagiert gemeinsam mit den

anderen Optionsschaltflächen in dieser GroupBox. Anderenfalls wird sie

dem Formular zugeordnet und reagiert gemeinsam mit den anderen Opti-

onsschaltflächen, die im Formular außerhalb von GroupBoxen stehen. Sie

können eine bereits erzeugte Optionsschaltfläche auch im Nachhinein aus-

schneiden, das Ziel markieren und sie wieder einfügen, um die Zuordnung

zu ändern.

Das Projekt Optionsgruppen verwendet zwei voneinander unabhängige

Gruppen von Optionen, siehe Abbildung 2.30.

3703.book Seite 83 Donnerstag, 3. September 2015 2:52 14

Page 36: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

84

Abbildung 2.30 Zwei Gruppen von RadioButtons

Der zugehörige Code:

Public Class Form1Private AusgabeUrlaubsort As StringPrivate AusgabeUnterkunft As String

Private Sub optBerlin_CheckedChanged(...) _Handles optBerlin.CheckedChanged,optParis.CheckedChanged, optRom.CheckedChanged

' UrlaubsortIf optBerlin.Checked Then

AusgabeUrlaubsort = "Berlin"ElseIf optParis.Checked Then

AusgabeUrlaubsort = "Paris"Else

AusgabeUrlaubsort = "Rom"End IflblAnzeige.Text = AusgabeUrlaubsort & ", " &

AusgabeUnterkunftEnd Sub

Private Sub optAppartement_CheckedChanged(...) _Handles optAppartement.CheckedChanged,optPension.CheckedChanged, optHotel.CheckedChanged

' UnterkunftIf optAppartement.Checked Then

AusgabeUnterkunft = "Appartement"ElseIf optPension.Checked Then

AusgabeUnterkunft = "Pension"Else

3703.book Seite 84 Donnerstag, 3. September 2015 2:52 14

2.5 Verzweigungen und Steuerelemente

85

2

AusgabeUnterkunft = "Hotel"End IflblAnzeige.Text = AusgabeUrlaubsort & ", " &

AusgabeUnterkunftEnd Sub

End Class

Listing 2.20 Projekt »Optionsgruppen«

Zur Erläuterung:

� Bei einer Urlaubsbuchung können Zielort und Art der Unterkunft unab-

hängig voneinander gewählt werden. Es gibt also zwei Gruppen von

Optionsschaltflächen, jede in einer eigenen GroupBox.

� Bei Auswahl einer der drei Optionsschaltflächen in einer Gruppe wird

jeweils die gleiche Prozedur aufgerufen. In den Prozeduren wird den

klassenweit gültigen Variablen AusgabeUrlaubsort bzw. AusgabeUnter-

kunft ein Wert zugewiesen und anschließend ausgegeben.

� Die Variablen mussten klassenweit gültig deklariert werden, damit sie in

der jeweils anderen Prozedur zur Verfügung stehen.

Übung

Übung ÜKran-

Optionen

Erweitern Sie die Übung ÜKranVerzweigung. Die Bewegung des Krans soll

per Zeitgeber (Timer) gesteuert werden. Der Benutzer wählt zunächst über

eine Gruppe von Optionsschaltflächen aus, welche Bewegung der Kran

ausführen soll. Anschließend betätigt er den Button Start, siehe Abbil-

dung 2.31. Die Bewegung wird so lange ausgeführt, bis der Benutzer den

Button Stop drückt oder eine Begrenzung erreicht wird.

Abbildung 2.31 Übung ÜKranOptionen

3703.book Seite 85 Donnerstag, 3. September 2015 2:52 14

Page 37: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

86

2.5.5 Prozedur ohne Ereignis, Modularisierung

Allgemeine

Prozedur

Bisher ging es nur um Prozeduren, die mit einem Ereignis zusammenhin-

gen. Darüber hinaus können Sie aber auch unabhängige, allgemeine Proze-

duren schreiben, die von anderen Stellen des Programms aus aufgerufen

werden. Diese Prozeduren können Sie direkt im Codefenster eingeben.

Nachfolgend das Programm im Projekt ProzedurOhneEreignis, es handelt

sich dabei um eine geänderte Version des Programms im Projekt Options-

gruppen:

Public Class Form1Private AusgabeUrlaubsort As StringPrivate AusgabeUnterkunft As String

Private Sub optUrlaubsort_CheckedChanged(...) _Handles optBerlin.CheckedChanged,optParis.CheckedChanged, optRom.CheckedChanged

' UrlaubsortIf optBerlin.Checked Then

AusgabeUrlaubsort = "Berlin"ElseIf optParis.Checked Then

AusgabeUrlaubsort = "Paris"Else

AusgabeUrlaubsort = "Rom"End If

Anzeigen()End Sub

Private Sub optUnterkunft_CheckedChanged(...) _Handles optAppartement.CheckedChanged,optPension.CheckedChanged, optHotel.CheckedChanged

' UnterkunftIf optAppartement.Checked Then

AusgabeUnterkunft = "Appartement"ElseIf optPension.Checked Then

AusgabeUnterkunft = "Pension"Else

AusgabeUnterkunft = "Hotel"End If

3703.book Seite 86 Donnerstag, 3. September 2015 2:52 14

2.5 Verzweigungen und Steuerelemente

87

2

Anzeigen()End Sub

Private Sub Anzeigen()lblAnzeige.Text = AusgabeUrlaubsort & ", " &

AusgabeUnterkunftEnd Sub

End Class

Listing 2.21 Projekt »ProzedurOhneEreignis«

Zur Erläuterung:

� Abgebildet wird nur der zweite Teil der Klasse.

� Am Ende der beiden Ereignisprozeduren optUnterkunft_CheckedChan-

ged() und optUrlaubsort_CheckedChanged() steht jeweils die Anweisung

Anzeigen(). Dabei handelt es sich um einen Aufruf der Prozedur Anzei-

gen().

� Diese Prozedur steht weiter unten. Sie ist nicht direkt an ein Ereignis

gekoppelt.

Vorteil dieser Vorgehensweise: Gemeinsam genutzte Programmteile kön-

nen ausgelagert werden und müssen nur einmal geschrieben werden. Man

nennt diesen Vorgang bei der Programmierung auch Modularisierung. In

Abschnitt 4.7 wird dieses Thema noch genauer behandelt.

2.5.6 Schieberegler

Zahlenwert

einstellen

Das Steuerelement Schieberegler (engl.: Trackbar) dient zur komfortablen

Einstellung eines Zahlenwerts. Im nachfolgenden Projekt Schieberegler

werden drei dieser Steuerelemente dazu genutzt, die Hintergrundfarbe ei-

nes Panels einzustellen, siehe auch Abbildung 2.32.

Abbildung 2.32 Farbe über Schieberegler einstellen

3703.book Seite 87 Donnerstag, 3. September 2015 2:52 14

Page 38: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

88

ValueChanged Das Ereignis ValueChanged eines Schiebereglers zeigt an, dass der Wert geän-

dert wurde. In diesem Projekt führt dieses Ereignis von allen drei Schiebe-

reglern zur selben Prozedur.

Zunächst der Code des Programms:

Public Class Form1Private Sub Form1_Load(...) Handles MyBase.Load

FarbeAnzeigen()End Sub

Private Sub FarbeAnzeigen()panFarbe.BackColor = Color.FromArgb(

trkRot.Value, trkGrün.Value, trkBlau.Value)lblRotWert.Text = trkRot.ValuelblGrünWert.Text = trkGrün.ValuelblBlauWert.Text = trkBlau.Value

End Sub

Private Sub WertGeändert(sender As Object, e As EventArgs) _Handles trkRot.ValueChanged, trkGrün.ValueChanged,

trkBlau.ValueChangedFarbeAnzeigen()

End SubEnd Class

Listing 2.22 Projekt »Schieberegler«

Zur Erläuterung:

Color.FromArgb() � Die Prozedur zum Laden des Formulars und die Betätigung eines der

drei Schieberegler führt zum Aufruf der Prozedur FarbeAnzeigen().

Darin wird die Methode FromArgb() der Struktur Color aufgerufen, die

drei Werte (Rot, Grün, Blau) zur Einstellung der Hintergrundfarbe des

Panels benötigt. Diese drei Werte werden mithilfe der Eigenschaft Value

von den Schiebereglern geliefert. Ein Startwert von 0 für alle drei Schie-

beregler ergibt die Farbe Schwarz.

� Neben jedem Schieberegler ist ein zusätzliches Label platziert, in dem

der aktuelle Wert als Zahl angezeigt wird.

� Die Eigenschaften Minimum und Maximum stehen für den Zahlenbereich des

Schiebereglers, hier von 0 bis 255.

3703.book Seite 88 Donnerstag, 3. September 2015 2:52 14

2.6 Schleifen

89

2

LargeChange,

SmallChange

� Falls der Benutzer rechts oder links neben dem Schieberegler klickt,

dann wird der Wert um den Eigenschaftswert von LargeChange verändert

(hier: 32). Falls der Schieberegler den Fokus hat, also das aktuelle Steuer-

element ist, und der Benutzer eine der Pfeiltasten betätigt, dann wird

der Wert um den Eigenschaftswert von SmallChange verändert (hier: 8).

TickFrequency� Die Eigenschaft TickFrequency steht für den Abstand der Markierungen

am Schieberegler (hier: 16).

2.6 Schleifen

Schleifen werden in Programmen häufig benötigt. Sie ermöglichen den

mehrfachen Durchlauf von Anweisungen. Darin liegt eine besondere

Stärke der Programmierung allgemein: die schnelle wiederholte Bearbei-

tung ähnlicher Vorgänge. Es gibt die Schleifenstrukturen: Do ... Loop, For

... Next, For Each ... In ... und With.

Mithilfe der Strukturen steuern Sie die Wiederholungen eines Anweisungs-

blocks (die Anzahl der Schleifendurchläufe). Dabei wird der Wahrheitswert

eines Ausdrucks (der Schleifenbedingung) oder der Wert eines numeri-

schen Ausdrucks (Wert des Schleifenzählers) benötigt.

AuflistungDie Schleife For Each ... In ... wird bei Feldern oder Auflistungen (engl.:

Collections) eingesetzt. Die Anweisung With dient der Steuerung einer be-

sonderen Schleife mit nur einem Durchlauf.

2.6.1 For ... Next

Falls die Anzahl der Schleifendurchläufe bekannt oder vor Beginn der

Schleife berechenbar ist, sollten Sie die For...Next-Schleife verwenden. Ihr

Aufbau sieht wie folgt aus:

For Zähler = Anfang To Ende [ Step Schritt ][ Anweisungen ][ Exit For ][ Anweisungen ]

Next [ Zähler ]

StepDie Zahlen-Variable Zähler wird zunächst auf den Wert von Anfang gesetzt.

Nach jedem Durchlauf wird sie um den Wert von Schritt verändert, also

vergrößert oder verkleinert. Falls Step Schritt nicht angegeben wurde, ver-

3703.book Seite 89 Donnerstag, 3. September 2015 2:52 14

Page 39: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

90

größert sich die Variable um 1. Der neue Wert von Zähler wird mit dem

Wert von Ende verglichen.

� Falls die Schrittweite positiv ist und der Wert von Zähler nicht größer als

der Wert von Ende ist, wird die Schleife wiederum durchlaufen.

� Falls die Schrittweite negativ ist und der Wert von Zähler nicht kleiner

als der Wert von Ende ist, wird die Schleife ebenfalls wiederum durch-

laufen.

� Falls die Schrittweite positiv ist und der Wert von Zähler größer als der

Wert von Ende ist oder falls die Schrittweite negativ ist und der Wert von

Zähler kleiner als der Wert von Ende ist, wird die Schleife beendet.

Next Zähler Die Anweisung Next kennzeichnet das Ende der Schleife. Zur Verdeutli-

chung sollte nachfolgend immer Zähler stehen.

Exit For Die Anweisung Exit For können Sie einsetzen, um die Schleife aufgrund ei-

ner speziellen Bedingung sofort zu verlassen.

In dem folgenden Programm im Projekt ForNext werden durch Aufruf von

vier Buttons vier unterschiedliche Schleifen durchlaufen, siehe Abbildung

2.33.

Abbildung 2.33 Verschiedene For-Schleifen

Der Programmcode:

Public Class Form1Private Sub cmdSchleife1_Click(...) Handles ...

Dim i As IntegerlblA1.Text = ""For i = 3 To 7

lblA1.Text &= i & vbCrLfNext i

End Sub

3703.book Seite 90 Donnerstag, 3. September 2015 2:52 14

2.6 Schleifen

91

2

Private Sub cmdSchleife2_Click(...) Handles ...Dim i As IntegerlblA2.Text = ""For i = 3 To 11 Step 2

lblA2.Text &= i & vbCrLfNext i

End Sub

Private Sub cmdSchleife3_Click(...) Handles ...Dim i As IntegerlblA3.Text = ""For i = 7 To 3 Step -1

lblA3.Text &= i & vbCrLfNext i

End Sub

Private Sub cmdSchleife4_Click(...) Handles ...Dim d As DoublelblA4.Text = ""For d = 3.5 To 7.5 Step 1.5

lblA4.Text &= d & vbCrLfNext d

End SubEnd Class

Listing 2.23 Projekt »ForNext«

Zur Erläuterung der ersten Schleife:

� Als Zählervariable dient i.

� Die Schleife wird erstmalig mit i = 3 und letztmalig mit i = 7 durchlaufen.

� Es ist keine Schrittweite angegeben, also wird als Schrittweite 1 ge-

nommen.

Zur Erläuterung der restlichen Schleifen:

� Bei der zweiten Schleife wurde die Schrittweite 2 gewählt.

� Die dritte Schleife läuft abwärts, daher muss eine negative Schrittweite

gewählt werden.

� In der vierten Schleife wird gezeigt, dass eine Schleife auch nicht ganz-

zahlige Werte durchlaufen kann.

3703.book Seite 91 Donnerstag, 3. September 2015 2:52 14

Page 40: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

92

2.6.2 Do ... Loop

Steuerung über

Bedingung

Ist die Anzahl der Schleifendurchläufe nicht bekannt bzw. vor Beginn der

Schleife nicht berechenbar, sollten Sie die Do...Loop-Schleife verwenden. Es

gibt sie in fünf verschiedenen Varianten:

While � Do While ... Loop prüft die Bedingung zum Weiterlaufen der Schleife am

Anfang der Schleife.

� Do ... Loop While prüft die Bedingung zum Weiterlaufen der Schleife am

Ende der Schleife.

Until � Do Until ... Loop prüft die Bedingung zum Abbruch der Schleife am

Anfang der Schleife.

� Do ... Loop Until prüft die Bedingung zum Abbruch der Schleife am Ende

der Schleife.

� Do ... Loop: Die Bedingung zum Weiterlaufen oder Abbruch der Schleife

wird nicht geprüft, daher ist eine Verzweigung in der Schleife und ein

Exit Do zur Beendigung der Schleife notwendig.

Der allgemeine Aufbau sieht wie folgt aus:

Do { While | Until } Bedingung[ Anweisungen ][ Exit Do ][ Anweisungen ]

Loop

oder

Do[ Anweisungen ][ Exit Do ][ Anweisungen ]

Loop { While | Until } Bedingung

Zufallsgenerator Das folgende Programm im Projekt DoLoop nutzt alle fünf Möglichkeiten.

Es werden Zahlen addiert, solange die Summe der Zahlen kleiner als 5 ist,

siehe Abbildung 2.34. Da ein Zufallsgenerator die Zahlen erzeugt, ist die An-

zahl der Schleifendurchläufe nicht vorhersagbar.

Randomize(), Rnd() Der Zufallszahlengenerator wird mithilfe der Funktion Rnd() realisiert. Sie

liefert bei jedem Aufruf einen neuen quasizufälligen Single-Wert zwischen

0 (einschließlich) und 1 (ausschließlich). Der Zufallszahlengenerator muss

3703.book Seite 92 Donnerstag, 3. September 2015 2:52 14

2.6 Schleifen

93

2

mithilfe der Prozedur Randomize() vor der Benutzung initialisiert werden,

da anderenfalls immer die gleichen Zufallszahlen geliefert würden. Die

Initialisierung erfolgt pro Programmaufruf einmalig beim Laden des For-

mulars.

Abbildung 2.34 Bedingungsgesteuerte Schleife

Load, MyBaseDieser Zeitpunkt wird durch das Ereignis Load gekennzeichnet. Sie erstellen

den Rahmen dieser Ereignisprozedur, indem Sie einen Doppelklick auf ei-

ner freien Stelle des Formulars ausführen. Die zugehörige Ereignisproze-

dur behandelt das Ereignis MyBase.Load. Mit MyBase können Sie auf die

Basisklasse der Klasse zugreifen, in der Sie sich befinden; in diesem Fall ist

das die Klasse des Formulars Form1. Mehr zum Begriff MyBase finden Sie in

Abschnitt 5.10.

Public Class Form1Private Sub Form1_Load(...) Handles MyBase.Load

Randomize()End Sub

Private Sub cmdSchleife1_Click(...) Handles ...Dim Summe As SinglelblAnzeige.Text = ""Summe = 0Do While Summe < 5

Summe += Rnd()lblAnzeige.Text &= Summe & vbCrLf

LooplblAnzeige.Text &= "Fertig!"

End Sub

3703.book Seite 93 Donnerstag, 3. September 2015 2:52 14

Page 41: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

94

Private Sub cmdSchleife2_Click(...) Handles ...Dim Summe As SinglelblAnzeige.Text = ""Summe = 0Do

Summe += Rnd()lblAnzeige.Text &= Summe & vbCrLf

Loop While Summe < 5lblAnzeige.Text &= "Fertig!"

End Sub

Private Sub cmdSchleife3_Click(...) Handles ...Dim Summe As SinglelblAnzeige.Text = ""Summe = 0Do Until Summe >= 5

Summe += Rnd()lblAnzeige.Text &= Summe & vbCrLf

LooplblAnzeige.Text &= "Fertig!"

End Sub

Private Sub cmdSchleife4_Click(...) Handles ...Dim Summe As SinglelblAnzeige.Text = ""Summe = 0Do

Summe += Rnd()lblAnzeige.Text &= Summe & vbCrLf

Loop Until Summe >= 5lblAnzeige.Text &= "Fertig!"

End Sub

Private Sub cmdSchleife5_Click(...) Handles ...Dim Summe As SinglelblAnzeige.Text = ""Summe = 0Do

Summe += Rnd()

3703.book Seite 94 Donnerstag, 3. September 2015 2:52 14

2.6 Schleifen

95

2

lblAnzeige.Text &= Summe & vbCrLfIf Summe >= 5 Then Exit Do

LooplblAnzeige.Text &= "Fertig!"

End SubEnd Class

Listing 2.24 Projekt »DoLoop«

Zur Erläuterung:

� Im Folgenden wird nur die erste Ereignisprozedur cmdSchleife1_Click()

erläutert. Die anderen Prozeduren sind vergleichbar aufgebaut. Auf die

unterschiedliche Schleifensteuerung wurde bereits weiter oben einge-

gangen.

� Der Inhalt des Labels wird von alten Ausgaben gelöscht.

Summe berechnen� Die Variable Summe wird zunächst mit dem Wert 0 initialisiert. Das ist in

Visual Basic eigentlich nicht nötig, gehört aber zum guten Program-

mierstil, da Sie auf diese Weise den Wert der Variablen zu Beginn der

Schleife sicherstellen können.

� Zu Beginn der Schleife wird geprüft, ob die Summe der Zahlen kleiner als

5 ist. Trifft das zu, kann die Schleife durchlaufen werden.

Hinweis: Bei einer solchen kopfgesteuerten Schleife (d. h., die Abbruch-

bedingung wird im Kopf der Schleife geprüft) kann es vorkommen, dass

sie niemals durchlaufen wird.

� Der Wert der Variablen Summe wird um eine Zufallszahl zwischen 0 und 1

erhöht.

� Der Inhalt des Labels wird um den aktuellen Wert der Summe und einen

Zeilenumbruch verlängert.

� Sie kommen zum Ende der Schleife, zur Anweisung Loop. Sie führt dazu,

dass das Programm wieder zu Beginn der Schleife fortgesetzt wird. Es

wird wiederum geprüft, ob die Summe der Zahlen kleiner als 5 ist. Sobald

das nicht mehr zutrifft, läuft das Programm hinter der Anweisung Loop

weiter.

� Es wird die Ausgabe Fertig! erzeugt.

3703.book Seite 95 Donnerstag, 3. September 2015 2:52 14

Page 42: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

96

2.6.3 Ein Würfel

Im nachfolgenden Programm, das sich ebenfalls im Projekt DoLoop befin-

det, wird mithilfe des Zufallsgenerators insgesamt zehnmal gewürfelt. Zu-

nächst der Code:

Private Sub cmdWürfel_Click(...) Handles ...Dim Wert As Integer, i As Integer = 1lblAnzeige.Text = ""Do

Wert = Math.Floor(Rnd() * 6) + 1lblAnzeige.Text &= Wert & vbCrLfi = i + 1

Loop While i <= 10End Sub

Listing 2.25 Projekt »DoLoop«, ein Würfel

Math.Floor() Die Funktion Rnd() liefert einen Single-Wert von 0 (einschließlich) bis 1

(ausschließlich). Der Ausdruck Rnd() * 6 ergibt somit einen Single-Wert von

0 (einschließlich) bis 6 (ausschließlich). Die Funktion Math.Floor(), siehe

auch Abschnitt 6.5, liefert die nächstniedrigere ganze Zahl, also eine ganze

Zahl von 0 bis 5. Addiert man eine 1 hinzu, so erhält man eine ganze Zahl

von 1 bis 6, also das Ergebnis eines Würfels, siehe Abbildung 2.35.

Abbildung 2.35 Zehnmal gewürfelt

2.6.4 With

Mithilfe von With führen Sie eine Reihe von Anweisungen für ein einzelnes

Objekt durch. Dabei wird der einmal erstellte Bezug zum Objekt mehrfach

3703.book Seite 96 Donnerstag, 3. September 2015 2:52 14

2.6 Schleifen

97

2

verwendet. Bei einem längeren Objektnamen ist das sehr nützlich und

übersichtlich. Der Aufbau sieht wie folgt aus:

With Objekt[ Anweisungen ]

End With

Ein Beispiel im Projekt WithBlock:

Public Class Form1Private Sub cmdAnzeige_Click(...) Handles ...

With lblAnzeige.BorderStyle = BorderStyle.Fixed3D.BackColor = Color.Yellow.Text = "Test".Location = New Point(20, 50)

End WithEnd Sub

End Class

Listing 2.26 Projekt »WithBlock«

Zur Erläuterung:

� Die Eigenschaften des Labels lblAnzeige werden mithilfe von With ge-

ändert.

� Die Eigenschaften Rahmenstil, Hintergrundfarbe, Textinhalt und Posi-

tion werden nacheinander gesetzt. Dabei muss zu Beginn der Anwei-

sung jeweils nur ein Punkt angegeben werden. Da das Programm sich

innerhalb des With-Blocks befindet, ist es klar, auf welches Objekt sich

die Änderungen beziehen.

2.6.5 Übungen

Anhand einer Reihe von Übungsaufgaben zu Schleifen (und Verzweigun-

gen) werden im Folgenden einige typische Probleme der Programmierung

in Visual Basic verdeutlicht. Der visuelle Teil der Lösung enthält in der Re-

gel nur ein einfaches Textfeld zur Eingabe, einen oder zwei Buttons zum

Durchführen der Aufgabe und ein einfaches Label zur Ausgabe.

3703.book Seite 97 Donnerstag, 3. September 2015 2:52 14

Page 43: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

98

Übung ÜForNext1

Übung ÜForNext1 For-Schleife: Schreiben Sie ein Programm mit einer einfachen Schleife, das

nacheinander die folgenden Zahlen ausgibt: 35; 32,5; 30; 27,5; 25; 22,5; 20.

Übung ÜForNext2

Übung ÜForNext2 For-Schleife: Erweitern Sie die vorherige Aufgabe. Am Ende der Zeile sollen

Summe und Mittelwert aller Zahlen angezeigt werden, siehe Abbildung

2.36.

Abbildung 2.36 Übung ÜForNext1 und 2

Übung ÜDoLoop

Übung ÜDoLoop Do...Loop-Schleife: Schreiben Sie ein Programm, mit dessen Hilfe eine ein-

gegebene Zahl wiederholt halbiert und ausgegeben wird. Das Programm

soll beendet werden, wenn das Ergebnis der Halbierung kleiner als 0,001

ist, siehe Abbildung 2.37.

Abbildung 2.37 Übung ÜDoLoop

3703.book Seite 98 Donnerstag, 3. September 2015 2:52 14

2.6 Schleifen

99

2

Übung ÜZahlenraten

Übung ÜZahlen-

raten

If ... Else: Schreiben Sie ein Programm, mit dem das Spiel Zahlenraten ge-

spielt werden kann: Per Zufallsgenerator wird eine ganze Zahl zwischen 1

und 100 erzeugt, aber nicht angezeigt. Der Benutzer soll so lange Zahlen

eingeben, bis er die Zahl erraten hat. Als Hilfestellung soll jedes Mal ausge-

geben werden, ob die eingegebene Zahl größer oder kleiner als die zu ra-

tende Zahl ist, siehe Abbildung 2.38.

Abbildung 2.38 Übung ÜZahlenraten

Übung ÜSteuertabelle

Übung

ÜSteuertabelle

For-Schleife, If ... Else oder Select Case: Erweitern Sie das Programm aus

Übung ÜSteuerbetrag. Schreiben Sie ein Programm, das zu einer Reihe von

Gehältern u. a. den Steuerbetrag berechnet und ausgibt. In Tabelle 2.14 sind

die Steuersätze angegeben.

Es soll für jedes Gehalt von 5.000 € bis 35.000 € in Schritten von 3.000 €

folgende vier Werte ausgegeben werden: Gehalt, Steuersatz, Steuerbetrag,

Gehalt abzüglich Steuerbetrag. Jedes Gehalt soll mit den zugehörigen Wer-

ten in einer eigenen Zeile ausgegeben werden, siehe Abbildung 2.39. Auch

hier wird davon ausgegangen, dass das gesamte Gehalt zum angegebenen

Satz versteuert wird.

Gehalt Steuersatz

von 0 € bis einschließlich 12.000 € 12 %

von über 12.000 € bis einschließlich 20.000 € 15 %

von über 20.000 € bis einschließlich 30.000 € 20 %

über 30.000 € 25 %

Tabelle 2.14 Übung ÜSteuertabelle

3703.book Seite 99 Donnerstag, 3. September 2015 2:52 14

Page 44: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

100

Abbildung 2.39 Übung ÜSteuertabelle

2.7 Schleifen und Steuerelemente

In diesem Abschnitt werden die beiden Steuerelemente Listenfeld und

Kombinationsfeld eingeführt. Damit können Sie eine einfache oder mehr-

fache Auswahl aus mehreren Möglichkeiten treffen. Im Zusammenhang

mit diesen Steuerelementen werden häufig Schleifen benötigt, wie sie im

vorherigen Abschnitt behandelt wurden.

2.7.1 Listenfeld

ListBox Ein Listenfeld (ListBox) zeigt eine Liste mit Einträgen an, aus denen der Be-

nutzer einen oder mehrere auswählen kann. Enthält das Listenfeld mehr

Einträge, als gleichzeitig angezeigt werden können, erhält es automatisch

einen Scrollbalken.

Items Die wichtigste Eigenschaft des Steuerelements ListBox ist die Auflistung

Items. Sie enthält die einzelnen Listeneinträge. Listenfelder können zur

Entwurfszeit gefüllt werden, indem der Eigenschaft Items in einem eigenen

kleinen Dialogfeld die Einträge hinzugefügt werden. In der Regel werden

Sie ein Listenfeld aber zur Laufzeit füllen.

2.7.2 Listenfeld füllen

Items.Add() Bisher wurden die Eigenschaften und Ereignisse von Steuerelementen be-

handelt. Darüber hinaus gibt es jedoch auch spezifische Methoden, die auf

diese Steuerelemente bzw. auf deren Eigenschaften angewendet werden

können. Beim Listenfeld ist das u. a. die Methode Add() der Eigenschaft

3703.book Seite 100 Donnerstag, 3. September 2015 2:52 14

2.7 Schleifen und Steuerelemente

101

2

Items. Diese wird am sinnvollsten zum Zeitpunkt des Ladens des Formulars

genutzt.

Im nachfolgenden Programm im Projekt ListenfeldFüllen wird ein Listen-

feld für italienische Speisen zu Beginn des Programms mit den folgenden

Werten gefüllt: Spaghetti, Grüne Nudeln, Tortellini, Pizza, Lasagne, siehe Ab-

bildung 2.40.

Abbildung 2.40 Listenfeld mit Scrollbalken

Der zugehörige Code:

Public Class Form1Private Sub Form1_Load(...) Handles MyBase.Load

lstSpeisen.Items.Add("Spaghetti")lstSpeisen.Items.Add("Grüne Nudeln")lstSpeisen.Items.Add("Tortellini")lstSpeisen.Items.Add("Pizza")lstSpeisen.Items.Add("Lasagne")

End SubEnd Class

Listing 2.27 Projekt »ListenfeldFüllen«

Zur Erläuterung:

� Das Ereignis Form1_Load wird ausgelöst, wenn das Formular geladen

wird.

� Die einzelnen Speisen werden der Reihe nach dem Listenfeld hinzuge-

fügt. Lasagne steht anschließend ganz unten.

2.7.3 Wichtige Eigenschaften

Die folgenden Eigenschaften eines Listenfelds bzw. der Auflistung Items

werden in der Praxis häufig benötigt:

3703.book Seite 101 Donnerstag, 3. September 2015 2:52 14

Page 45: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

102

� Items.Count gibt die Anzahl der Elemente in der Liste an.

SelectedItem � SelectedItem beinhaltet das aktuell vom Benutzer ausgewählte Ele-

ment der Liste. Falls kein Element ausgewählt wird, ergibt SelectedItem

nichts.

� SelectedIndex gibt die laufende Nummer des aktuell vom Benutzer aus-

gewählten Elements an, beginnend bei 0 für das oberste Element. Falls

kein Element ausgewählt wird, ergibt SelectedIndex den Wert -1.

Items(i) � Über Items (Index) können Sie die einzelnen Elemente ansprechen, das

oberste Element ist Items(0).

Das folgende Programm im Projekt ListenfeldEigenschaften veranschau-

licht alle diese Eigenschaften (siehe auch Abbildung 2.41).

Public Class Form1[...]

Private Sub cmdAnzeige_Click(...) Handles ...Dim i As Integer

lblAnzeige1.Text = "Anzahl: " & lstSpeisen.Items.CountlblAnzeige2.Text = "Ausgewählter Eintrag: " &

lstSpeisen.SelectedItemlblAnzeige3.Text = "Nummer des ausgewählten" &

" Eintrags: " & lstSpeisen.SelectedIndex

lblAnzeige4.Text = "Alle Einträge:" & vbCrLfFor i = 0 To lstSpeisen.Items.Count - 1

lblAnzeige4.Text &= lstSpeisen.Items(i) & vbCrLfNext i

End SubEnd Class

Listing 2.28 Projekt »ListenfeldEigenschaften«

Zur Erläuterung:

� Das Listenfeld ist bereits gefüllt, siehe Projekt ListenfeldFüllen.

� Die Anzahl der Elemente wird über lstSpeisen.Items.Count ausgegeben,

in diesem Fall sind es 5.

� Der ausgewählte Eintrag steht in lstSpeisen.SelectedItem, seine Num-

mer in lstSpeisen.SelectedIndex.

3703.book Seite 102 Donnerstag, 3. September 2015 2:52 14

2.7 Schleifen und Steuerelemente

103

2

� Eine For-Schleife dient der Ausgabe aller Elemente. Sie läuft von 0 bis

lstSpeisen.Items.Count – 1. Das liegt daran, dass bei einer Liste mit fünf

Elementen die Elemente mit 0 bis 4 nummeriert sind.

� Die einzelnen Elemente werden mit lstSpeisen.Items(i) angesprochen.

Die Variable i beinhaltet bei der Schleife die aktuelle laufende Nummer.

Abbildung 2.41 Anzeige nach Auswahl eines Elements

2.7.4 For Each … In …

SchleifeZur Ausgabe der Elemente einer Auflistung eignet sich auch die For-Each-

Schleife. Nach Betätigung des Buttons For Each im Projekt Listenfeld-

Eigenschaften (siehe Abbildung 2.41) wird die folgende Prozedur durch-

laufen:

Private Sub cmdForEach_Click(...) Handles ...lblAnzeige4.Text = "Alle Einträge:" & vbCrLfFor Each s As String In lstSpeisen.Items

lblAnzeige4.Text &= s & vbCrLfNext s

End Sub

Listing 2.29 For-Each-Schleife

Den Kopf einer For-Each-Schleife verstehen Sie am besten, wenn Sie ihn

dem Sinn nach übersetzen: Durchlaufe jedes Element der Auflistung lst-

3703.book Seite 103 Donnerstag, 3. September 2015 2:52 14

Page 46: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

104

Speisen.Items. Lege dabei jeweils eine Kopie des Elements an. Der Datentyp

der Kopie entspricht dem Datentyp eines Elements (hier also String).

Innerhalb der Schleife wird dann jeder String s einzeln zur Ausgabe hinzu-

gefügt.

Beachten Sie, dass eine Änderung des Strings s innerhalb der Schleife nicht

zur Änderung des zugehörigen Elements der Auflistung führt, da es sich ja

bei s um eine Kopie handelt.

2.7.5 Wechsel der Auswahl

SelectedIndex-

Changed

Ähnlich wie beim Kontrollkästchen oder bei der Optionsschaltfläche ist

das wichtigste Ereignis einer ListBox nicht der Click, sondern das Ereignis

SelectedIndexChanged. Dieses Ereignis zeigt nicht nur an, dass der Benutzer

die ListBox bedient hat, sondern auch, dass sie ihren Zustand geändert hat.

Das kann z. B. auch durch Programmcode geschehen. Eine Ereignisproze-

dur zu SelectedIndexChanged() wird in jedem Fall durchlaufen, sobald die

ListBox (vom Benutzer oder vom Programmcode) geändert wird.

Allerdings wird der Programmablauf meist so gestaltet, dass bei einem an-

deren Ereignis die aktuelle Auswahl der ListBox abgefragt und anschlie-

ßend je nach Zustand unterschiedlich reagiert wird.

Das nachfolgende Programm im Projekt ListenfeldEreignis veranschaulicht

diesen Zusammenhang, siehe Abbildung 2.42.

Abbildung 2.42 Anzeige nach dem Ereignis

Der Programmcode:

Public Class Form1[...]

Private Sub cmdEreignis_Click(...) Handles ...lstSpeisen.SelectedIndex = 3

3703.book Seite 104 Donnerstag, 3. September 2015 2:52 14

2.7 Schleifen und Steuerelemente

105

2

End Sub

Private Sub lstSpeisen_SelectedIndexChanged(...) _Handles lstSpeisen.SelectedIndexChanged

lblAnzeige.Text = lstSpeisen.SelectedItemEnd Sub

End Class

Listing 2.30 Projekt »ListenfeldEreignis«

Zur Erläuterung:

� Das Listenfeld ist bereits gefüllt, siehe Projekt ListenfeldFüllen.

� In der Ereignisprozedur cmdEreignis_Click() wird die Nummer des aus-

gewählten Elements auf 3 gesetzt. Dadurch wird in der ListBox Pizza aus-

gewählt. Im Label wird die geänderte Auswahl sofort angezeigt, da das

Ereignis lstSpeisen_SelectedIndexChanged ausgelöst wurde.

� In der dazugehörigen Ereignisprozedur lstSpeisen_SelectedIndex-

Changed() wird die Anzeige des ausgewählten Elements ausgelöst. Dieses

wird unmittelbar nach der Auswahl angezeigt. Die Auswahl lässt sich

durch einen Klick des Benutzers in der Liste oder auch durch Programm-

code auslösen.

2.7.6 Wichtige Methoden

Die Methoden Insert() und RemoveAt() können Sie zur Veränderung der

Inhalte des Listenfelds nutzen:

Insert()� Mithilfe der Methode Insert() können Sie Elemente zum Listenfeld an

einer gewünschten Stelle hinzufügen.

RemoveAt()� Die Methode RemoveAt() löscht ein Element an der gewünschten Stelle.

Im nachfolgenden Programm im Projekt ListenfeldMethoden werden die

beiden Methoden eingesetzt, um ein Listenfeld zu verwalten, siehe Abbil-

dung 2.43. Es können Elemente eingefügt, gelöscht und geändert werden.

Um sicherzustellen, dass es sich hierbei um sinnvolle Operationen handelt,

müssen Sie jeweils bestimmte Bedingungen beachten.

3703.book Seite 105 Donnerstag, 3. September 2015 2:52 14

Page 47: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

106

Abbildung 2.43 Verwaltung eines Listenfelds

Public Class Form1[...]

Private Sub cmdLöschen_Click(...) Handles ...Dim X As IntegerX = lstSpeisen.SelectedIndexIf X <> -1 Then

lstSpeisen.Items.RemoveAt(X)End If

End Sub

Private Sub cmdEinfügen_Click(...) Handles ...If txtNeu.Text = "" Then

Exit SubEnd IfIf optAnfang.Checked Then

lstSpeisen.Items.Insert(0, txtNeu.Text)ElseIf optAuswahl.Checked And

lstSpeisen.SelectedIndex <> -1 ThenlstSpeisen.Items.Insert(

lstSpeisen.SelectedIndex, txtNeu.Text)Else

lstSpeisen.Items.Add(txtNeu.Text)End IftxtNeu.Text = ""

End Sub

3703.book Seite 106 Donnerstag, 3. September 2015 2:52 14

2.7 Schleifen und Steuerelemente

107

2

Private Sub cmdErsetzen_Click(...) Handles ...Dim X As IntegerIf txtErsetzen.Text <> "" And

lstSpeisen.SelectedIndex <> -1 ThenX = lstSpeisen.SelectedIndexlstSpeisen.Items.RemoveAt(X)lstSpeisen.Items.Insert(X, txtErsetzen.Text)txtErsetzen.Text = ""

End IfEnd Sub

Private Sub cmdAllesLöschen_Click(...) Handles ...lstSpeisen.Items.Clear()

End SubEnd Class

Listing 2.31 Projekt »ListenfeldMethoden«

Zur Erläuterung:

� Das Listenfeld ist bereits gefüllt, siehe Projekt ListenfeldFüllen.

� In der Prozedur cmdLöschen_Click() wird der Wert von SelectedIndex in

der Variablen X gespeichert. Anschließend wird untersucht, ob ein Ele-

ment ausgewählt wurde, ob also der Wert von X ungleich -1 ist. Ist das der

Fall, wird dieses Element mit der Methode RemoveAt() gelöscht. Wird

kein Element ausgewählt, geschieht nichts.

� Die Prozedur cmdEinfügen_Click() untersucht zunächst, ob in der Text-

Box etwas zum Einfügen steht. Ist das der Fall, wird untersucht, welcher

Einfügeort über die Optionsschaltflächen ausgesucht wurde.

– Wurde als Einfügeort das Ende der Liste gewählt, wird der Inhalt mit

der bekannten Methode Add() am Ende der Liste angefügt.

– In den beiden anderen Fällen wird die Methode Insert() zum Einfü-

gen des Inhalts der TextBox vor einem vorhandenen Listeneintrag

genutzt. Diese Methode benötigt den Index des Elements, vor dem

eingefügt werden soll. Das ist entweder der Wert 0, falls am Anfang

der Liste eingefügt werden soll, oder der Wert von SelectedIndex, falls

vor dem ausgewählten Element eingefügt werden soll.

� Anschließend wird die TextBox gelöscht, damit nicht versehentlich

zweimal das gleiche Element eingefügt wird.

3703.book Seite 107 Donnerstag, 3. September 2015 2:52 14

Page 48: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

108

� In der Prozedur cmdErsetzen_Click() wird untersucht, ob in der TextBox

etwas zum Ersetzen steht und ob ein Element zum Ersetzen ausgewählt

wurde. Ist das der Fall, wird

– der Wert von SelectedIndex in der Variablen X gespeichert,

– das zugehörige Element mit der Methode RemoveAt() gelöscht,

– der neue Text an der gleichen Stelle mit der Methode Insert() einge-

fügt und

– die TextBox gelöscht, damit nicht versehentlich zweimal das gleiche

Element eingefügt wird.

� In der Prozedur cmdAllesLöschen_Click() dient die Methode Clear()

zum Leeren der ListBox.

So sieht das Dialogfeld nach einigen Veränderungen aus (siehe Abbildung

2.44).

Abbildung 2.44 Nach einigen Änderungen

2.7.7 Mehrfachauswahl

SelectionMode Sie können es dem Benutzer ermöglichen, gleichzeitig mehrere Einträge

aus einer Liste auszuwählen, wie er das auch aus anderen Windows-Pro-

grammen kennt. Dazu wird zur Entwicklungszeit die Eigenschaft Selec-

tionMode auf den Wert MultiExtended gesetzt. Der Benutzer kann

anschließend mithilfe der (Strg)-Taste mehrere einzelne Elemente aus-

wählen oder mithilfe der (ª)-Taste (wie für Großbuchstaben) einen zusam-

menhängenden Bereich von Elementen markieren.

Hinweis: Nach dem Einfügen einer neuen ListBox in ein Formular steht die

Eigenschaft SelectionMode zunächst auf dem Standardwert One, d. h., es

lässt sich nur ein Element auswählen.

SelectedIndices Die Eigenschaften SelectedIndices und SelectedItems beinhalten die Num-

mern bzw. die Einträge der ausgewählten Elemente. Sie ähneln in ihrem

3703.book Seite 108 Donnerstag, 3. September 2015 2:52 14

2.7 Schleifen und Steuerelemente

109

2

Verhalten der Eigenschaft Items. Das nachfolgende Programm im Projekt

ListenfeldMehrfachauswahl verdeutlicht das, siehe auch Abbildung 2.45.

Abbildung 2.45 Mehrere ausgewählte Elemente

Der Programmcode:

Public Class Form1[...]

Private Sub cmdAnzeigen_Click(...) Handles ...lblAnzeige.Text = ""For Each s As String In lstSpeisen.SelectedItems

lblAnzeige.Text &= s & vbCrLfNext s

End SubEnd Class

Listing 2.32 Projekt »ListenfeldMehrfachauswahl«

Zur Erläuterung:

� Das Listenfeld ist bereits gefüllt, siehe Projekt ListenfeldFüllen.

� In der Prozedur cmdAnzeigen_Click() werden alle ausgewählten Ele-

mente mithilfe einer For-Each-Schleife durchlaufen und ausgegeben.

2.7.8 Kombinationsfelder

Das Steuerelement Kombinationsfeld (ComboBox) vereinigt die Merkmale

eines Listenfelds mit denen eines Textfelds. Der Benutzer kann einen Ein-

trag aus dem Listenfeldbereich auswählen oder im Textfeldbereich einge-

ben. Das Kombinationsfeld hat im Wesentlichen die Eigenschaften und

Methoden des Listenfelds.

3703.book Seite 109 Donnerstag, 3. September 2015 2:52 14

Page 49: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

110

DropDownStyle Sie können mithilfe der Eigenschaft DropDownStyle zwischen drei Typen

von Kombinationsfeldern wählen:

� DropDown: Das ist der Standard – die Auswahl aus einer Liste (Aufklappen

der Liste mit der Pfeiltaste) oder Eingabe in das Textfeld. Das Kombina-

tionsfeld hat die Größe einer TextBox.

� DropDownList: Die Auswahl ist begrenzt auf die Einträge der aufklappba-

ren Liste, also ohne eigene Eingabemöglichkeit. Dieser Typ Kombinati-

onsfeld verhält sich demnach wie ein Listenfeld, ist allerdings so klein

wie eine TextBox. Ein Listenfeld ließe sich zwar auch auf diese Größe

verkleinern, aber die Scrollpfeile sind dann sehr klein.

� Simple: Die Liste ist immer geöffnet und wird bei Bedarf mit einer Bild-

laufleiste versehen. Wie beim Typ DropDown ist die Auswahl aus der Liste

oder die Eingabe in das Textfeld möglich. Beim Erstellen eines solchen

Kombinationsfelds lässt sich die Höhe wie bei ListBoxen einstellen.

Die Eigenschaft SelectionMode gibt es bei Kombinationsfeldern nicht. Das

folgende Programm im Projekt Kombinationsfeld führt alle drei Typen von

Kombinationsfeldern vor, siehe auch Abbildung 2.46.

Public Class Form1Private Sub Form1_Load(...) Handles MyBase.Load

cmbWerkzeug1.Items.Add("Zange")cmbWerkzeug1.Items.Add("Hammer")cmbWerkzeug1.Items.Add("Bohrer")cmbWerkzeug1.Items.Add("Schraubendreher")

[... Das Gleiche für die beiden anderen Kombinationsfelder ...]

End Sub

Private Sub cmdAnzeigen1_Click(...) Handles ...lblAnzeige1.Text = cmbWerkzeug1.Text

End Sub

Private Sub cmdAnzeigen2_Click(...) Handles ...lblAnzeige2.Text = cmbWerkzeug2.SelectedItem

End Sub

Private Sub cmdAnzeigen3_Click(...) Handles ...

3703.book Seite 110 Donnerstag, 3. September 2015 2:52 14

2.7 Schleifen und Steuerelemente

111

2

lblAnzeige3.Text = cmbWerkzeug3.TextEnd Sub

End Class

Listing 2.33 Projekt »Kombinationsfeld«

Abbildung 2.46 Drei verschiedene Kombinationsfelder

Zur Erläuterung:

� Das erste Kombinationsfeld hat den DropDownStyle DropDown. Hat der

Benutzer einen Eintrag ausgewählt, erscheint dieser in der TextBox des

Kombinationsfelds. Falls er selbst einen Eintrag eingibt, erscheint dieser

ebenfalls dort. Die Eigenschaft Text enthält den Inhalt dieser TextBox,

also immer den Wert des Kombinationsfelds.

� Das zweite Kombinationsfeld hat den DropDownStyle DropDownList. Es

gibt also keine TextBox. Wie beim Listenfeld ermitteln Sie die Auswahl

des Benutzers über die Eigenschaft SelectedItem.

� Das dritte Kombinationsfeld hat den DropDownStyle Simple. Im Pro-

gramm kann es genauso wie das erste Kombinationsfeld behandelt

werden. Die Eigenschaft Text beinhaltet also immer den Wert des Kom-

binationsfelds.

Übung

Übung ÜListenfeldSchreiben Sie ein Programm, das zwei Listenfelder beinhaltet, in denen je-

weils mehrere Elemente markiert werden können. Zwischen den beiden

Listenfeldern befinden sich zwei Buttons, jeweils mit einem Pfeil nach

rechts bzw. nach links, siehe Abbildung 2.47. Bei Betätigung eines der

3703.book Seite 111 Donnerstag, 3. September 2015 2:52 14

Page 50: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

2 Grundlagen

112

beiden Buttons sollen die ausgewählten Elemente in Pfeilrichtung aus der

einen Liste in die andere Liste verschoben werden, siehe Abbildung 2.48.

Abbildung 2.47 Liste vor dem Verschieben

Abbildung 2.48 Liste nach dem Verschieben

Bei der Lösung kann neben der Eigenschaft SelectedItems z. B. auch die Ei-

genschaft SelectedIndices genutzt werden. Eine solche Auflistung beinhal-

tet dann nicht die ausgewählten Einträge, sondern deren Indizes. Mit dem

Löschen mehrerer Einträge aus einem Listenfeld sollten Sie vom Ende der

Liste her beginnen. Der Grund hierfür ist: Löschen Sie eines der vorderen

Elemente zuerst, stimmen die Indizes in der Auflistung SelectedIndices

nicht mehr.

3703.book Seite 112 Donnerstag, 3. September 2015 2:52 14

Page 51: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

517

Anhang B

Lösungen der Übungsaufgaben

Die Bearbeitung der Beispiele, das Verständnis für ihren Aufbau sowie das

selbständige Lösen der Übungen sind ein wichtiger Schritt beim Erlernen

der Programmierung. In diesem Abschnitt finden Sie jeweils eine Lösungs-

möglichkeit zu jeder Übung. Lassen Sie sich nicht irritieren, wenn Ihre

Lösung anders aussieht. Es ist in erster Linie wichtig, dass das Ergebnis

stimmt. Vielleicht bietet Ihnen die hier vorliegende Lösung aber auch

einen Denkanstoß zur Verbesserung.

B.1 Lösung der Übungsaufgabe aus Kapitel 1

B.1.1 Lösung ÜName

Public Class Form1Private Sub cmdMyName_Click(sender As Object,

e As EventArgs) Handles cmdMyName.ClicklblMyName.Text = "Bodo Basic"

End Sub

Private Sub cmdEnde_Click(sender As Object,e As EventArgs) Handles cmdEnde.Click

Close()End Sub

End Class

B.2 Lösungen der Übungsaufgaben aus Kapitel 2

B.2.1 Lösung ÜDatentypen

Public Class Form1Private Sub cmdAnzeigen_Click(...) Handles ...

Dim nachname, vorname As StringDim strasse, plz, ort As StringDim alter As IntegerDim geburtsdatum As Date

3703.book Seite 517 Donnerstag, 3. September 2015 2:52 14

Page 52: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

B Lösungen der Übungsaufgaben

518

nachname = "Basic"vorname = "Bodo"strasse = "Bergstraße 34"plz = "09445"ort = "Brunnstadt"alter = 27geburtsdatum = "18.05.1988"

lblA.Text = "Adresse: " & vbCrLf & vorname & " " &nachname & vbCrLf & strasse & vbCrLf & plz & " " &ort & vbCrLf & vbCrLf & "geb.: " & geburtsdatum &vbCrLf & "Alter: " & alter

End SubEnd Class

B.2.2 Lösung ÜGültigkeitsbereich

Public Class Form1Private x As Double

Private Sub cmdAnzeigen1_Click(...) Handles ...Dim y As Doubley = y + 0.1x = x + 0.1lblA.Text = "x: " & x & vbCrLf & "y: " & y

End Sub

Private Sub cmdAnzeigen2_Click(...) Handles ...Dim z As Doublez = z + 0.1x = x + 0.1lblA.Text = "x: " & x & vbCrLf & "z: " & z

End SubEnd Class

3703.book Seite 518 Donnerstag, 3. September 2015 2:52 14

B.2 Lösungen der Übungsaufgaben aus Kapitel 2

519

B.2.3 Lösung ÜRechenoperatoren

Public Class Form1Private Sub cmdAnzeigen1_Click(...) Handles ...

Dim x As Doublex = 3 * -2.5 + 4 * 2lblA.Text = x

End Sub

Private Sub cmdAnzeigen2_Click(...) Handles ...Dim x As Doublex = 3 * (-2.5 + 4) * 2lblA.Text = x

End SubEnd Class

B.2.4 Lösung ÜVergleichsoperatoren

Public Class Form1Private Sub cmdAnzeigen1_Click(...) Handles ...

Dim p As Booleanp = 12 - 3 >= 4 * 2.5lblA.Text = p

End Sub

Private Sub cmdAnzeigen2_Click(...) Handles ...Dim p As Booleanp = "Maier" Like "M??er"lblA.Text = p

End SubEnd Class

B.2.5 Lösung ÜLogischeOperatoren

Public Class Form1Private Sub cmdAnzeigen1_Click(...) Handles ...

Dim p As Booleanp = 4 > 3 And -4 > -3lblA.Text = p

End Sub

3703.book Seite 519 Donnerstag, 3. September 2015 2:52 14

Page 53: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

B Lösungen der Übungsaufgaben

520

Private Sub cmdAnzeigen2_Click(...) Handles ...Dim p As Booleanp = 4 > 3 Or -4 > -3lblA.Text = p

End SubEnd Class

B.2.6 Lösung ÜOperatoren

1: False, 2: True, 3: True, 4: True, 5: True, 6: False, 7: True, 8: False

B.2.7 Lösung ÜPanelZeitgeber

Public Class Form1Private Sub cmdStart_Click(...) Handles ...

tim1.Enabled = TrueEnd Sub

Private Sub tim1_Tick(...) Handles tim1.Tickpan1.Location = New Point(pan1.Location.X - 5,

pan1.Location.Y - 5)pan2.Location = New Point(pan2.Location.X + 5,

pan2.Location.Y - 5)pan3.Location = New Point(pan3.Location.X - 5,

pan3.Location.Y + 5)pan4.Location = New Point(pan4.Location.X + 5,

pan4.Location.Y + 5)End Sub

End Class

B.2.8 Lösung ÜKran

Bezeichnungen:

� f: Fundament

� s: senkrechtes Hauptelement

� a: waagerechter Ausleger

� h: senkrechter Haken am Ausleger

3703.book Seite 520 Donnerstag, 3. September 2015 2:52 14

B.2 Lösungen der Übungsaufgaben aus Kapitel 2

521

Public Class Form1Private Sub cmdHakenAus_Click(...) Handles ...

h.Height = h.Height + 10End Sub

Private Sub cmdHakenEin_Click(...) Handles ...h.Height = h.Height - 10

End Sub

Private Sub cmdAuslegerAus_Click(...) Handles ...a.Width = a.Width + 10a.Location = New Point(a.Location.X - 10, a.Location.Y)h.Location = New Point(h.Location.X - 10, h.Location.Y)

End Sub

Private Sub cmdAuslegerEin_Click(...) Handles ...a.Width = a.Width - 10a.Location = New Point(a.Location.X + 10, a.Location.Y)h.Location = New Point(h.Location.X + 10, h.Location.Y)

End Sub

Private Sub cmdKranRechts_Click(...) Handles ...f.Location = New Point(f.Location.X + 10, f.Location.Y)s.Location = New Point(s.Location.X + 10, s.Location.Y)a.Location = New Point(a.Location.X + 10, a.Location.Y)h.Location = New Point(h.Location.X + 10, h.Location.Y)

End Sub

Private Sub cmdKranLinks_Click(...) Handles ...f.Location = New Point(f.Location.X - 10, f.Location.Y)s.Location = New Point(s.Location.X - 10, s.Location.Y)a.Location = New Point(a.Location.X - 10, a.Location.Y)h.Location = New Point(h.Location.X - 10, h.Location.Y)

End Sub

Private Sub cmdKranAus_Click(...) Handles ...s.Height = s.Height + 10s.Location = New Point(s.Location.X, s.Location.Y - 10)a.Location = New Point(a.Location.X, a.Location.Y - 10)h.Location = New Point(h.Location.X, h.Location.Y - 10)

3703.book Seite 521 Donnerstag, 3. September 2015 2:52 14

Page 54: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

B Lösungen der Übungsaufgaben

522

End Sub

Private Sub cmdKranEin_Click(...) Handles ...s.Height = s.Height - 10s.Location = New Point(s.Location.X, s.Location.Y + 10)a.Location = New Point(a.Location.X, a.Location.Y + 10)h.Location = New Point(h.Location.X, h.Location.Y + 10)

End SubEnd Class

B.2.9 Lösung ÜSteuerbetrag, zwei Möglichkeiten

Public Class Form1Private Sub cmdBerechnen1_Click(...) Handles ...

Dim gehalt, steuersatz, steuerbetrag As Doublegehalt = Convert.ToDouble(txtGehalt.Text)

If gehalt <= 12000 Thensteuersatz = 12

ElseIf gehalt <= 20000 Thensteuersatz = 15

ElseIf gehalt <= 30000 Thensteuersatz = 20

Elsesteuersatz = 25

End If

steuerbetrag = gehalt * steuersatz / 100lblSteuerbetrag.Text = steuerbetrag

End Sub

Private Sub cmdBerechnen2_Click(...) Handles ...Dim gehalt, steuersatz, steuerbetrag As Doublegehalt = Convert.ToDouble(txtGehalt.Text)

Select Case gehaltCase Is <= 12000

steuersatz = 12Case Is <= 20000

steuersatz = 15

3703.book Seite 522 Donnerstag, 3. September 2015 2:52 14

B.2 Lösungen der Übungsaufgaben aus Kapitel 2

523

Case Is <= 30000steuersatz = 20

Case Elsesteuersatz = 25

End Select

steuerbetrag = gehalt * steuersatz / 100lblSteuerbetrag.Text = steuerbetrag

End SubEnd Class

B.2.10 Lösung ÜKranVerzweigung

Bezeichnungen:

� f: Fundament

� s: senkrechtes Hauptelement

� a: waagerechter Ausleger

� h: senkrechter Haken am Ausleger

Public Class Form1Private Sub cmdHakenAus_Click(...) Handles ...

If h.Location.Y + h.Height + 5 < f.Location.Y Thenh.Height = h.Height + 10

End IfEnd Sub

Private Sub cmdHakenEin_Click(...) Handles ...If h.Height > 15 Then

h.Height = h.Height - 10End If

End Sub

Private Sub cmdAuslegerAus_Click(...) Handles ...If a.Location.X > 15 Then

a.Width = a.Width + 10a.Location = New Point(a.Location.X - 10, a.Location.Y)h.Location = New Point(h.Location.X - 10, h.Location.Y)

End IfEnd Sub

3703.book Seite 523 Donnerstag, 3. September 2015 2:52 14

Page 55: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

B Lösungen der Übungsaufgaben

524

Private Sub cmdAuslegerEin_Click(...) Handles ...If a.Width > 30 Then

a.Width = a.Width - 10a.Location = New Point(a.Location.X + 10, a.Location.Y)h.Location = New Point(h.Location.X + 10, h.Location.Y)

End IfEnd Sub

Private Sub cmdKranRechts_Click(...) Handles ...If f.Location.X < 215 Then

f.Location = New Point(f.Location.X + 10, f.Location.Y)s.Location = New Point(s.Location.X + 10, s.Location.Y)a.Location = New Point(a.Location.X + 10, a.Location.Y)h.Location = New Point(h.Location.X + 10, h.Location.Y)

End IfEnd Sub

Private Sub cmdKranLinks_Click(...) Handles ...If f.Location.X > 15 And a.Location.X > 15 Then

f.Location = New Point(f.Location.X - 10, f.Location.Y)s.Location = New Point(s.Location.X - 10, s.Location.Y)a.Location = New Point(a.Location.X - 10, a.Location.Y)h.Location = New Point(h.Location.X - 10, h.Location.Y)

End IfEnd Sub

Private Sub cmdKranAus_Click(...) Handles ...If s.Location.Y > 15 Then

s.Height = s.Height + 10s.Location = New Point(s.Location.X, s.Location.Y - 10)a.Location = New Point(a.Location.X, a.Location.Y - 10)h.Location = New Point(h.Location.X, h.Location.Y - 10)

End IfEnd Sub

Private Sub cmdKranEin_Click(...) Handles ...If h.Location.Y + h.Height + 5 < f.Location.Y Then

s.Height = s.Height - 10s.Location = New Point(s.Location.X, s.Location.Y + 10)a.Location = New Point(a.Location.X, a.Location.Y + 10)

3703.book Seite 524 Donnerstag, 3. September 2015 2:52 14

B.2 Lösungen der Übungsaufgaben aus Kapitel 2

525

h.Location = New Point(h.Location.X, h.Location.Y + 10)End If

End SubEnd Class

B.2.11 Lösung ÜKranOptionen

Bezeichnungen:

� f: Fundament

� s: senkrechtes Hauptelement

� a: waagerechter Ausleger

� h: senkrechter Haken am Ausleger

Public Class Form1Private Sub cmdStart_Click(...) Handles ...

tim1.Enabled = TrueEnd Sub

Private Sub cmdStop_Click(...) Handles ...tim1.Enabled = False

End Sub

Private Sub tim1_Tick(...) Handles tim1.TickIf optHakenAus.Checked Then

If h.Location.Y + h.Height + 5 < f.Location.Y Thenh.Height = h.Height + 10

Elsetim1.Enabled = False

End IfElseIf optHakenEin.Checked Then

If h.Height > 15 Thenh.Height = h.Height - 10

Elsetim1.Enabled = False

End IfElseIf optAuslegerAus.Checked Then

If a.Location.X > 15 Thena.Width = a.Width + 10a.Location = New Point(a.Location.X - 10,

a.Location.Y)

3703.book Seite 525 Donnerstag, 3. September 2015 2:52 14

Page 56: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

B Lösungen der Übungsaufgaben

526

h.Location = New Point(h.Location.X - 10,h.Location.Y)

Elsetim1.Enabled = False

End IfElseIf optAuslegerEin.Checked Then

If a.Width > 25 Thena.Width = a.Width - 10a.Location = New Point(a.Location.X + 10,

a.Location.Y)h.Location = New Point(h.Location.X + 10,

h.Location.Y)Else

tim1.Enabled = FalseEnd If

ElseIf optKranRechts.Checked ThenIf f.Location.X < 215 Then

f.Location = New Point(f.Location.X + 10,f.Location.Y)

s.Location = New Point(s.Location.X + 10,s.Location.Y)

a.Location = New Point(a.Location.X + 10,a.Location.Y)

h.Location = New Point(h.Location.X + 10,h.Location.Y)

Elsetim1.Enabled = False

End IfElseIf optKranLinks.Checked Then

If f.Location.X > 15 And a.Location.X > 15 Thenf.Location = New Point(f.Location.X - 10,

f.Location.Y)s.Location = New Point(s.Location.X - 10,

s.Location.Y)a.Location = New Point(a.Location.X - 10,

a.Location.Y)h.Location = New Point(h.Location.X - 10,

h.Location.Y)Else

tim1.Enabled = False

3703.book Seite 526 Donnerstag, 3. September 2015 2:52 14

B.2 Lösungen der Übungsaufgaben aus Kapitel 2

527

End IfElseIf optKranAus.Checked Then

If s.Location.Y > 15 Thens.Height = s.Height + 10s.Location = New Point(s.Location.X,

s.Location.Y - 10)a.Location = New Point(a.Location.X,

a.Location.Y - 10)h.Location = New Point(h.Location.X,

h.Location.Y - 10)Else

tim1.Enabled = FalseEnd If

ElseIf optKranEin.Checked ThenIf h.Location.Y + h.Height + 5 < f.Location.Y Then

s.Height = s.Height - 10s.Location = New Point(s.Location.X,

s.Location.Y + 10)a.Location = New Point(a.Location.X,

a.Location.Y + 10)h.Location = New Point(h.Location.X,

h.Location.Y + 10)Else

tim1.Enabled = FalseEnd If

End IfEnd Sub

End Class

B.2.12 Lösung ÜForNext1

Public Class Form1Private Sub cmdAnzeigen_Click(...) Handles ...

Dim d As DoublelblA.Text = ""For d = 35 To 20 Step -2.5

lblA.Text &= d & vbCrLfNext d

End SubEnd Class

3703.book Seite 527 Donnerstag, 3. September 2015 2:52 14

Page 57: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

B Lösungen der Übungsaufgaben

528

B.2.13 Lösung ÜForNext2

Public Class Form1Private Sub cmdAnzeigen_Click(...) Handles ...

Dim d, summe, zähler, mittelwert As Double

summe = 0zähler = 0lblA.Text = ""

For d = 35 To 20 Step -2.5lblA.Text &= d & vbCrLfsumme += dzähler += 1

Next d

mittelwert = summe / zählerlblA.Text &= vbCrLf & "Summe: " & summe & vbCrLf &

"Mittelwert: " & mittelwert & vbCrLfEnd Sub

End Class

B.2.14 Lösung ÜDoLoop

Public Class Form1Private Sub cmdHalbieren_Click(...) Handles ...

Dim d As Doubled = Convert.ToDouble(txtEingabe.Text)

lblA.Text = ""Do While d > 0.001

d = d / 2lblA.Text &= d & vbCrLf

Loop

End SubEnd Class

3703.book Seite 528 Donnerstag, 3. September 2015 2:52 14

B.2 Lösungen der Übungsaufgaben aus Kapitel 2

529

B.2.15 Lösung ÜZahlenraten

Public Class Form1Private zahl As Integer

Private Sub cmdPrüfen_Click(...) Handles ...Dim eingabe As Integereingabe = Convert.ToInt32(txtEingabe.Text)

If eingabe > zahl ThenlblA.Text = "Die Zahl " & eingabe & " ist zu groß"

ElseIf eingabe < zahl ThenlblA.Text = "Die Zahl " & eingabe & " ist zu klein"

ElselblA.Text = "Die Zahl " & eingabe & " stimmt"

End IfEnd Sub

Private Sub Form1_Load(...) Handles MyBase.LoadRandomize()zahl = Math.Floor(Rnd() * 100) + 1

End SubEnd Class

B.2.16 Lösung ÜSteuertabelle

Public Class Form1Private Sub cmdAnzeigen_Click(...) Handles ...

Dim gehalt As DoubleDim steuersatz As DoubleDim steuerbetrag As DoubleDim netto As Double

lblA.Text = ""For gehalt = 5000 To 35000 Step 3000

If gehalt <= 12000 Thensteuersatz = 12

ElseIf gehalt <= 20000 Thensteuersatz = 15

ElseIf gehalt <= 30000 Thensteuersatz = 20

3703.book Seite 529 Donnerstag, 3. September 2015 2:52 14

Page 58: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

B Lösungen der Übungsaufgaben

530

Elsesteuersatz = 25

End If

steuerbetrag = gehalt * steuersatz / 100netto = gehalt - steuerbetraglblA.Text &= gehalt & " €, " & steuersatz & " %, " &

steuerbetrag & " €, " & netto & " €" & vbCrLfNext gehalt

End SubEnd Class

B.2.17 Lösung ÜListenfeld

Public Class Form1Private Sub Form1_Load(...) Handles MyBase.Load

lstLinks.Items.Add("Malta")lstLinks.Items.Add("Zypern")lstLinks.Items.Add("Slowenien")lstLinks.Items.Add("Estland")lstLinks.Items.Add("Rumänien")

lstRechts.Items.Add("Belgien")lstRechts.Items.Add("Spanien")lstRechts.Items.Add("Italien")lstRechts.Items.Add("Portugal")lstRechts.Items.Add("Dänemark")

End Sub

Private Sub cmdRechts_Click(...) Handles ...For Each s As String In lstLinks.SelectedItems

lstRechts.Items.Add(s)Next s

Dim i As IntegerFor i = lstLinks.SelectedItems.Count - 1 To 0 Step -1

lstLinks.Items.RemoveAt(lstLinks.SelectedIndices(i))Next i

End Sub

3703.book Seite 530 Donnerstag, 3. September 2015 2:52 14

B.3 Lösungen der Übungsaufgaben aus Kapitel 4

531

Private Sub cmdLinks_Click(...) Handles ...For Each s As String In lstRechts.SelectedItems

lstLinks.Items.Add(s)Next s

Dim i As IntegerFor i = lstRechts.SelectedItems.Count - 1 To 0 Step -1

lstRechts.Items.RemoveAt(lstRechts.SelectedIndices(i))Next i

End SubEnd Class

B.3 Lösungen der Übungsaufgaben aus Kapitel 4

B.3.1 Lösung ÜEnabled

Public Class Form1Private Sub Form1_Load(...) Handles MyBase.Load

lstLand.Items.Add("Liechtenstein")lstLand.Items.Add("Malta")lstLand.Items.Add("Andorra")lstLand.Items.Add("San Marino")lstLand.Items.Add("Monaco")

End Sub

Private Sub lstLand_SelectedIndexChanged(...) _Handles lstLand.SelectedIndexChanged

If lstLand.SelectedItems.Count > 0 ThencmdLöschen.Enabled = True

ElsecmdLöschen.Enabled = False

End IfEnd Sub

Private Sub cmdLöschen_Click(...) Handles ...lstLand.Items.RemoveAt(lstLand.SelectedIndex)

End SubEnd Class

3703.book Seite 531 Donnerstag, 3. September 2015 2:52 14

Page 59: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

Auf einen Blick

Auf einen Blick

1 Einführung ................................................................................................................... 17

2 Grundlagen .................................................................................................................. 41

3 Fehlerbehandlung ..................................................................................................... 113

4 Erweiterte Grundlagen ............................................................................................ 125

5 Objektorientierte Programmierung .................................................................... 187

6 Wichtige Klassen in .NET ......................................................................................... 239

7 Weitere Elemente eines Windows-Programms .............................................. 311

8 Datenbankanwendungen mit ADO.NET ............................................................ 365

9 Internetanwendungen mit ASP.NET ................................................................... 419

10 Zeichnen mit GDI+ .................................................................................................... 445

11 Beispielprojekte ......................................................................................................... 461

12 Windows Presentation Foundation .................................................................... 485

3703.book Seite 3 Donnerstag, 3. September 2015 2:52 14

Page 60: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

5

Inhalt

1 Einführung 17

1.1 Aufbau dieses Buchs .............................................................................................................. 17

1.2 Visual Studio 2015 ................................................................................................................... 17

1.3 Mein erstes Windows-Programm .................................................................................... 18

1.4 Visual-Basic-Entwicklungsumgebung ........................................................................... 19

1.4.1 Ein neues Projekt ...................................................................................................... 19

1.4.2 Einfügen von Steuerelementen ........................................................................... 21

1.4.3 Arbeiten mit dem Eigenschaften-Fenster ........................................................ 22

1.4.4 Speichern eines Projekts ........................................................................................ 25

1.4.5 Das Codefenster ........................................................................................................ 25

1.4.6 Schreiben von Programmcode ............................................................................. 27

1.4.7 Kommentare .............................................................................................................. 29

1.4.8 Starten, Ausführen und Beenden des Programms ........................................ 29

1.4.9 Ausführbares Programm ....................................................................................... 30

1.4.10 Projekt schließen, Projekt öffnen ........................................................................ 30

1.4.11 Übung ........................................................................................................................... 31

1.4.12 Regeln für Zeilenumbrüche .................................................................................. 31

1.5 Arbeiten mit Steuerelementen ......................................................................................... 32

1.5.1 Steuerelemente formatieren ................................................................................ 32

1.5.2 Steuerelemente kopieren ...................................................................................... 34

1.5.3 Eigenschaften zur Laufzeit ändern ..................................................................... 34

1.5.4 Vergabe und Verwendung von Namen ............................................................ 37

1.5.5 Verknüpfung von Texten, mehrzeilige Texte .................................................. 37

1.5.6 Eigenschaft BackColor, Farben allgemein ........................................................ 38

2 Grundlagen 41

2.1 Variablen und Datentypen .................................................................................................. 41

2.1.1 Namen und Werte ................................................................................................... 41

2.1.2 Deklarationen ............................................................................................................ 42

2.1.3 Datentypen ................................................................................................................. 42

3703.book Seite 5 Donnerstag, 3. September 2015 2:52 14

Page 61: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

Inhalt

6

2.1.4 Gültigkeitsbereich .................................................................................................... 45

2.1.5 Konstanten ................................................................................................................. 48

2.1.6 Enumerationen ......................................................................................................... 50

2.2 Operatoren ................................................................................................................................. 51

2.2.1 Rechenoperatoren ................................................................................................... 52

2.2.2 Vergleichsoperatoren ............................................................................................. 54

2.2.3 Logische Operatoren ............................................................................................... 55

2.2.4 Verkettungsoperator .............................................................................................. 56

2.2.5 Zuweisungsoperatoren .......................................................................................... 57

2.2.6 Rangfolge der Operatoren .................................................................................... 57

2.3 Einfache Steuerelemente .................................................................................................... 59

2.3.1 Panel ............................................................................................................................. 59

2.3.2 Zeitgeber ..................................................................................................................... 61

2.3.3 Textfelder .................................................................................................................... 64

2.3.4 Zahlenauswahlfeld .................................................................................................. 68

2.4 Verzweigungen ........................................................................................................................ 69

2.4.1 Einzeiliges If ... Then ... Else .................................................................................... 70

2.4.2 If...Then...Else-Block ................................................................................................. 72

2.4.3 Select Case .................................................................................................................. 73

2.4.4 Funktion IIf ................................................................................................................. 74

2.4.5 Funktion Choose ....................................................................................................... 75

2.4.6 Übungen ..................................................................................................................... 76

2.5 Verzweigungen und Steuerelemente ............................................................................ 76

2.5.1 Kontrollkästchen ...................................................................................................... 77

2.5.2 Optionsschaltfläche ................................................................................................ 79

2.5.3 Mehrere Ereignisse in einer Prozedur behandeln ......................................... 82

2.5.4 Mehrere Gruppen von Optionsschaltflächen ................................................. 83

2.5.5 Prozedur ohne Ereignis, Modularisierung ....................................................... 86

2.5.6 Schieberegler ............................................................................................................. 87

2.6 Schleifen ...................................................................................................................................... 89

2.6.1 For ... Next ................................................................................................................... 89

2.6.2 Do ... Loop .................................................................................................................... 92

2.6.3 Ein Würfel ................................................................................................................... 96

2.6.4 With .............................................................................................................................. 96

2.6.5 Übungen ..................................................................................................................... 97

2.7 Schleifen und Steuerelemente .......................................................................................... 100

2.7.1 Listenfeld .................................................................................................................... 100

3703.book Seite 6 Donnerstag, 3. September 2015 2:52 14

Inhalt

7

2.7.2 Listenfeld füllen ........................................................................................................ 100

2.7.3 Wichtige Eigenschaften ......................................................................................... 101

2.7.4 For Each … In … ........................................................................................................... 103

2.7.5 Wechsel der Auswahl .............................................................................................. 104

2.7.6 Wichtige Methoden ................................................................................................. 105

2.7.7 Mehrfachauswahl .................................................................................................... 108

2.7.8 Kombinationsfelder ................................................................................................. 109

3 Fehlerbehandlung 113

3.1 Entwicklung eines Programms .......................................................................................... 113

3.2 Fehlerarten ................................................................................................................................. 114

3.3 Syntaxfehler und IntelliSense ............................................................................................ 115

3.4 Laufzeitfehler und Exception Handling ......................................................................... 117

3.4.1 Programm mit Laufzeitfehlern ............................................................................ 117

3.4.2 Einfaches Exception Handling ............................................................................. 119

3.4.3 Erweitertes Exception Handling .......................................................................... 121

3.5 Logische Fehler und Debugging ........................................................................................ 122

3.5.1 Haltepunkte und Einzelschrittverfahren .......................................................... 122

3.5.2 Überwachungsfenster ............................................................................................ 123

4 Erweiterte Grundlagen 125

4.1 Steuerelemente aktivieren ................................................................................................. 125

4.1.1 Ereignis Enter ............................................................................................................. 125

4.1.2 Eigenschaften Enabled und Visible .................................................................... 128

4.2 Bedienung per Tastatur ........................................................................................................ 131

4.2.1 Eigenschaften TabIndex und TabStop .............................................................. 131

4.2.2 Tastenkombination für Steuerelemente .......................................................... 132

4.3 Ereignisgesteuerte Programmierung ............................................................................. 133

4.3.1 Eine Ereigniskette ..................................................................................................... 133

4.3.2 Endlose Ereignisketten ........................................................................................... 135

4.3.3 Textfelder koppeln ................................................................................................... 136

3703.book Seite 7 Donnerstag, 3. September 2015 2:52 14

Page 62: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

Inhalt

8

4.4 Mehrere Formulare ................................................................................................................ 138

4.4.1 Allgemeine Code-Module ...................................................................................... 142

4.5 Datenfelder ................................................................................................................................ 144

4.5.1 Eindimensionale Datenfelder .............................................................................. 144

4.5.2 Ein Feld durchsuchen .............................................................................................. 146

4.5.3 Weitere Feld-Operationen .................................................................................... 148

4.5.4 Mehrdimensionale Datenfelder .......................................................................... 150

4.5.5 Datenfelder initialisieren ...................................................................................... 154

4.5.6 Datenfelder sind dynamisch ................................................................................ 155

4.6 Benutzerdefinierte Datentypen ....................................................................................... 158

4.7 Prozeduren und Funktionen ............................................................................................... 161

4.7.1 Prozeduren ................................................................................................................. 162

4.7.2 Übergabe per Referenz ........................................................................................... 164

4.7.3 Funktionen ................................................................................................................. 167

4.7.4 Optionale Argumente ............................................................................................. 169

4.7.5 Beliebig viele Argumente ...................................................................................... 171

4.7.6 Datenfelder als Argumente .................................................................................. 173

4.7.7 Rekursiver Aufruf ..................................................................................................... 175

4.7.8 Übungen zu Prozeduren und Funktionen ........................................................ 177

4.8 Konsolenanwendung ............................................................................................................ 178

4.8.1 Anwendung erzeugen ............................................................................................ 178

4.8.2 Ein- und Ausgabe von Text ................................................................................... 178

4.8.3 Eingabe einer Zahl ................................................................................................... 180

4.8.4 Erfolgreiche Eingabe einer Zahl .......................................................................... 181

4.8.5 Ausgabe formatieren .............................................................................................. 182

4.8.6 Aufruf von der Kommandozeile .......................................................................... 183

5 Objektorientierte Programmierung 187

5.1 Was ist Objektorientierung? .............................................................................................. 187

5.2 Klasse, Eigenschaft, Methode, Objekt ........................................................................... 188

5.2.1 Objektverweis und Instanz ................................................................................... 191

5.3 Eigenschaftsmethode ........................................................................................................... 193

5.4 Konstruktor ................................................................................................................................ 195

3703.book Seite 8 Donnerstag, 3. September 2015 2:52 14

Inhalt

9

5.5 Namensräume .......................................................................................................................... 198

5.6 Referenzen, Vergleiche und Typen .................................................................................. 200

5.6.1 Referenzen .................................................................................................................. 200

5.6.2 Operator Is .................................................................................................................. 201

5.6.3 Objekte vergleichen ................................................................................................. 202

5.6.4 Typ eines Objekts ermitteln .................................................................................. 204

5.6.5 Typ eines Objekts durch Vergleich ermitteln .................................................. 205

5.7 Delegates .................................................................................................................................... 205

5.8 Statische Elemente ................................................................................................................. 208

5.9 Vererbung ................................................................................................................................... 211

5.10 Konstruktoren bei Vererbung ............................................................................................ 215

5.11 Polymorphie ............................................................................................................................... 217

5.12 Schnittstellen ............................................................................................................................ 221

5.13 Generische Typen .................................................................................................................... 225

5.13.1 Eine Liste von Zeichenketten ................................................................................ 225

5.13.2 Eine Liste von Objekten .......................................................................................... 228

5.13.3 Ein Dictionary von Objekten ................................................................................. 232

5.14 Eigene Klassenbibliotheken ................................................................................................ 235

5.14.1 DLL erstellen ............................................................................................................... 235

5.14.2 DLL nutzen .................................................................................................................. 237

6 Wichtige Klassen in .NET 239

6.1 Klasse String für Zeichenketten ........................................................................................ 239

6.1.1 Eigenschaften der Klasse String .......................................................................... 240

6.1.2 Trimmen ...................................................................................................................... 242

6.1.3 Splitten ......................................................................................................................... 243

6.1.4 Suchen .......................................................................................................................... 245

6.1.5 Einfügen ...................................................................................................................... 248

6.1.6 Löschen ........................................................................................................................ 250

6.1.7 Teilzeichenkette ermitteln .................................................................................... 251

6.1.8 Zeichen ersetzen ....................................................................................................... 253

6.1.9 Ausgabe formatieren .............................................................................................. 254

3703.book Seite 9 Donnerstag, 3. September 2015 2:52 14

Page 63: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

Inhalt

10

6.2 Datum und Uhrzeit ................................................................................................................. 256

6.2.1 Eigenschaften von DateTime ............................................................................... 256

6.2.2 Rechnen mit Datum und Uhrzeit ....................................................................... 259

6.2.3 DateTimePicker ......................................................................................................... 261

6.3 Dateien und Verzeichnisse .................................................................................................. 264

6.3.1 Lesen aus einer Textdatei ...................................................................................... 265

6.3.2 Schreiben in eine Textdatei .................................................................................. 267

6.3.3 Sicheres Lesen aus einer Textdatei .................................................................... 268

6.3.4 Sicheres Schreiben in eine Textdatei ................................................................. 271

6.3.5 Datei mit wahlfreiem Zugriff ............................................................................... 272

6.3.6 Die Klassen File und Directory ............................................................................. 279

6.3.7 Das aktuelle Verzeichnis ........................................................................................ 280

6.3.8 Eine Liste der Dateien ............................................................................................. 281

6.3.9 Eine Liste der Dateien und Verzeichnisse ........................................................ 282

6.3.10 Informationen über Dateien und Verzeichnisse ........................................... 283

6.3.11 Bewegen in der Verzeichnishierarchie .............................................................. 284

6.4 XML-Dateien ............................................................................................................................. 286

6.4.1 Aufbau von XML-Dateien ...................................................................................... 286

6.4.2 Schreiben in eine XML-Datei ................................................................................ 288

6.4.3 Lesen aus einer XML-Datei .................................................................................... 289

6.4.4 Schreiben von Objekten ......................................................................................... 291

6.4.5 Lesen von Objekten ................................................................................................. 293

6.5 Rechnen mit der Klasse Math ............................................................................................ 295

6.6 Zugriff auf MS Office ............................................................................................................. 300

6.6.1 MS Word-Datei erstellen ....................................................................................... 302

6.6.2 MS Word-Datei lesen .............................................................................................. 305

6.6.3 MS Excel-Datei erstellen ........................................................................................ 306

6.6.4 MS Excel-Datei lesen ............................................................................................... 308

7 Weitere Elemente eines Windows-Programms 311

7.1 Hauptmenü ................................................................................................................................ 311

7.1.1 Erstellung des Hauptmenüs ................................................................................. 311

7.1.2 Code des Hauptmenüs ........................................................................................... 313

7.1.3 Klasse Font ................................................................................................................. 316

7.1.4 Schriftart ..................................................................................................................... 316

3703.book Seite 10 Donnerstag, 3. September 2015 2:52 14

Inhalt

11

7.1.5 Schriftgröße ................................................................................................................ 318

7.1.6 Schriftstil ..................................................................................................................... 319

7.2 Kontextmenü ............................................................................................................................ 320

7.2.1 Erstellung des Kontextmenüs .............................................................................. 320

7.2.2 Code des Kontextmenüs ........................................................................................ 321

7.3 Symbolleiste .............................................................................................................................. 322

7.3.1 Erstellung der Symbolleiste .................................................................................. 323

7.3.2 Code der Symbolleiste ............................................................................................ 324

7.4 Statusleiste ................................................................................................................................. 327

7.4.1 Erstellung der Statusleiste .................................................................................... 327

7.4.2 Code der Statusleiste .............................................................................................. 328

7.5 Eingabe-Dialogfeld ................................................................................................................. 329

7.6 Ausgabe-Dialogfeld ................................................................................................................ 333

7.7 Standarddialogfelder ............................................................................................................. 339

7.7.1 Datei öffnen ............................................................................................................... 339

7.7.2 Datei speichern unter ............................................................................................. 341

7.7.3 Verzeichnis auswählen ........................................................................................... 343

7.7.4 Farbe auswählen ...................................................................................................... 344

7.7.5 Schrifteigenschaften auswählen ........................................................................ 345

7.8 Steuerelement ListView ....................................................................................................... 347

7.9 Steuerelement Chart .............................................................................................................. 350

7.10 Steuerelement DataGridView ........................................................................................... 355

7.11 Lokalisierung ............................................................................................................................. 360

8 Datenbankanwendungen mit ADO.NET 365

8.1 Was sind relationale Datenbanken? ............................................................................... 365

8.1.1 Beispiel »Lager« ......................................................................................................... 366

8.1.2 Indizes .......................................................................................................................... 369

8.1.3 Relationen ................................................................................................................... 370

8.1.4 Übungen ...................................................................................................................... 375

8.2 Anlegen einer Datenbank in MS Access ........................................................................ 376

8.2.1 Aufbau von MS Access ............................................................................................ 376

3703.book Seite 11 Donnerstag, 3. September 2015 2:52 14

Page 64: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

Inhalt

12

8.2.2 Datenbankentwurf in MS Access 2013 .............................................................. 378

8.2.3 Übungen ..................................................................................................................... 382

8.3 Datenbankzugriff mit Visual Basic .................................................................................. 382

8.3.1 Beispiel-Datenbank ................................................................................................. 383

8.3.2 Ablauf eines Zugriffs ............................................................................................... 384

8.3.3 Verbindung ................................................................................................................ 384

8.3.4 SQL-Befehl .................................................................................................................. 384

8.3.5 OleDb ........................................................................................................................... 385

8.3.6 Auswahlabfrage ....................................................................................................... 385

8.3.7 Aktionsabfrage .......................................................................................................... 388

8.4 SQL-Befehle ................................................................................................................................ 390

8.4.1 Auswahl mit »SELECT« ........................................................................................... 390

8.4.2 Ändern mit »UPDATE« ............................................................................................ 395

8.4.3 Löschen mit »DELETE« ............................................................................................ 395

8.4.4 Einfügen mit »INSERT« ........................................................................................... 396

8.4.5 Typische Fehler in SQL ............................................................................................ 396

8.5 Ein Verwaltungsprogramm ................................................................................................ 398

8.5.1 Initialisierung ............................................................................................................ 398

8.5.2 Alle Datensätze sehen ............................................................................................ 399

8.5.3 Datensatz einfügen ................................................................................................. 401

8.5.4 Datensatz ändern .................................................................................................... 403

8.5.5 Datensatz löschen ................................................................................................... 406

8.5.6 Datensatz suchen .................................................................................................... 408

8.6 Abfragen über mehrere Tabellen ..................................................................................... 410

8.7 Verbindung zu MySQL ........................................................................................................... 415

8.7.1 .NET-Treiber ............................................................................................................... 415

9 Internetanwendungen mit ASP.NET 419

9.1 Grundlagen von Internetanwendungen ...................................................................... 419

9.1.1 Statische Internetanwendungen ........................................................................ 419

9.1.2 Dynamische Internetanwendungen ................................................................. 420

9.1.3 Vorteile von ASP.NET .............................................................................................. 421

9.2 Ein lokaler Webserver ........................................................................................................... 421

9.2.1 Eine erste Internetanwendung ........................................................................... 422

3703.book Seite 12 Donnerstag, 3. September 2015 2:52 14

Inhalt

13

9.3 Eine erste ASP.NET-Anwendung ....................................................................................... 424

9.3.1 Fehlerhafte Programmierung .............................................................................. 426

9.4 Formatierung von Internetseiten ..................................................................................... 427

9.5 Senden und Auswerten von Formulardaten ............................................................... 428

9.6 Weitere Formularelemente ................................................................................................ 431

9.7 Ein Kalenderelement .............................................................................................................. 434

9.8 ASP.NET und ADO.NET .......................................................................................................... 436

9.9 Datenbank im Internet ändern ......................................................................................... 439

10 Zeichnen mit GDI+ 445

10.1 Grundlagen von GDI+ ............................................................................................................ 445

10.2 Linie, Rechteck, Polygon und Ellipse zeichnen ........................................................... 445

10.2.1 Grundeinstellungen ................................................................................................ 446

10.2.2 Linie ............................................................................................................................... 447

10.2.3 Rechteck ....................................................................................................................... 448

10.2.4 Polygon ........................................................................................................................ 448

10.2.5 Ellipse ............................................................................................................................ 449

10.2.6 Dicke und Farbe ändern, Zeichnung löschen .................................................. 450

10.3 Text schreiben ........................................................................................................................... 451

10.4 Bilder darstellen ....................................................................................................................... 453

10.5 Dauerhaft zeichnen ................................................................................................................ 455

10.6 Zeichnen einer Funktion ....................................................................................................... 457

11 Beispielprojekte 461

11.1 Spielprogramm Tetris ............................................................................................................ 461

11.1.1 Spielablauf .................................................................................................................. 461

11.1.2 Programmbeschreibung ........................................................................................ 462

11.1.3 Steuerelemente ........................................................................................................ 463

11.1.4 Initialisierung des Programms ............................................................................. 464

11.1.5 Erzeugen eines neuen Panels ............................................................................... 466

3703.book Seite 13 Donnerstag, 3. September 2015 2:52 14

Page 65: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

Inhalt

14

11.1.6 Der Zeitgeber ............................................................................................................. 467

11.1.7 Panel löschen ............................................................................................................. 468

11.1.8 Panel seitlich bewegen ........................................................................................... 472

11.1.9 Panel nach unten bewegen .................................................................................. 473

11.1.10 Pause ............................................................................................................................ 473

11.2 Lernprogramm Vokabeln ..................................................................................................... 474

11.2.1 Benutzung des Programms .................................................................................. 474

11.2.2 Erweiterung des Programms ................................................................................ 476

11.2.3 Initialisierung des Programms ............................................................................. 476

11.2.4 Ein Test beginnt ........................................................................................................ 477

11.2.5 Zwei Hilfsprozeduren ............................................................................................. 479

11.2.6 Die Antwort prüfen ................................................................................................. 481

11.2.7 Das Benutzermenü .................................................................................................. 482

12 Windows Presentation Foundation 485

12.1 Layout ........................................................................................................................................... 486

12.2 Steuerelemente ....................................................................................................................... 489

12.3 Frame-Anwendung ................................................................................................................. 492

12.4 Zweidimensionale Grafik .................................................................................................... 495

12.5 Dreidimensionale Grafik ...................................................................................................... 498

12.6 Animation ................................................................................................................................... 502

12.7 WPF und Windows Forms ................................................................................................... 505

12.7.1 Windows Forms in WPF ......................................................................................... 505

12.7.2 WPF in Windows Forms ......................................................................................... 507

Anhang 511

A Installation und technische Hinweise ............................................................................ 511

A.1 Installation von Visual Studio Community 2015 ............................................ 511

A.2 Arbeiten mit einer Formularvorlage .................................................................. 511

A.3 Arbeiten mit einer Projektvorlage ...................................................................... 513

3703.book Seite 14 Donnerstag, 3. September 2015 2:52 14

Inhalt

15

A.4 Weitergabe eigener Windows-Programme .................................................... 513

A.5 Konfigurationsdaten ............................................................................................... 515

B Lösungen der Übungsaufgaben ........................................................................................ 517

B.1 Lösung der Übungsaufgabe aus Kapitel 1 ........................................................ 517

B.2 Lösungen der Übungsaufgaben aus Kapitel 2 ................................................ 517

B.3 Lösungen der Übungsaufgaben aus Kapitel 4 ................................................ 531

B.4 Lösungen der Übungsaufgaben aus Kapitel 8 ................................................ 535

Index ............................................................................................................................................................... 537

3703.book Seite 15 Donnerstag, 3. September 2015 2:52 14

Page 66: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

Index

537

Index

^ ......................................................................................... 52

^=....................................................................................... 57

_ ....................................................................................... 392

? .......................................................................................... 54

* ................................................................................... 52, 54

*=........................................................................................ 57

/.......................................................................................... 52

/= ....................................................................................... 57

\ .......................................................................................... 52

& .............................................................. 37, 56, 132, 313

&=...................................................................................... 57

#............................................................................. 183, 256

% ...................................................................................... 392

+ ......................................................................................... 52

+=....................................................................................... 57

< ................................................................................ 54, 391

<=.............................................................................. 54, 391

<>.............................................................................. 54, 391

-=........................................................................................ 57

= ......................................................................... 54, 57, 391

> ................................................................................ 54, 391

>=.............................................................................. 54, 391

1:1-Relation .................................................................. 370

1:n-Relation ....................................................... 368, 371

3D-Körper .................................................................... 498

A

Abfrage

Datenbank .............................................................. 377

accdb-Datei.................................................................. 378

Accessor........................................................................ 194

Acos() ............................................................................. 295

Add()

ArrayList .................................................................. 401

Columns................................................................... 350

Controls ................................................................... 467

Datum und Uhrzeit ............................................. 259

Documents ............................................................. 303

generische Liste............................................ 225, 467

Items ......................................................................... 350

Listenfeld ................................................................. 100

Paragraphs ............................................................. 303

Add() (Forts.)

Series ......................................................................... 353

SubItems.................................................................. 350

Tables........................................................................ 304

Worksheets ............................................................. 307

AddHandler ................................................................ 207

AddHours().................................................................. 259

Addition .......................................................................... 52

AddMilliseconds() .................................................... 259

AddMinutes() ............................................................. 259

AddMonths() .............................................................. 259

AddressOf .................................................................... 207

AddSeconds().............................................................. 259

AddXY()......................................................................... 353

AddYears() ................................................................... 259

ADO.NET....................................................................... 365

Aktionsabfrage .......................................................... 388

Aktivierungsreihenfolge ....................................... 131

AND (SQL) .................................................................... 392

And (VB) .......................................................................... 55

Anführungszeichen.................................................... 45

Angle

LabelStyle ................................................................ 354

Animation

3D-Körper................................................................ 502

Anweisung ..................................................................... 27

mehrere....................................................................... 70

mehrfach durchlaufen .......................................... 89

Anwendung

mehrsprachig ........................................................ 360

MS Excel................................................................... 307

MS Word .................................................................. 303

weitergeben............................................................ 513

App.config ................................................................... 515

Append ......................................................................... 266

ArcSegment ................................................................ 497

args ................................................................................. 184

Argument .................................................................... 163

beliebig viele .......................................................... 171

optional ................................................................... 169

ArgumentOutOfRangeException ...................... 248

Arkusfunktion ........................................................... 295

Array, Klasse ............................................................... 148

As.............................................................................. 44, 167

3703.book Seite 537 Donnerstag, 3. September 2015 2:52 14

Page 67: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

Index

538

Asin() ............................................................................. 295

asp:Calendar............................................................... 436

asp:Label ...................................................................... 428

ASP.NET ........................................................................ 419

Programmierfehler .............................................. 426

Atan()............................................................................. 295

Attached Event .......................................................... 488

Attached Property.................................................... 488

AttributeCount

XmlTextReader ...................................................... 290

Aufzählung .................................................................... 50

Ausführbare Datei....................................................... 30

Ausgabe

formatieren ............................................................. 182

mehrzeilig .................................................................. 37

Ausgabe-Dialogfeld ................................................. 333

Auskommentierung .................................................. 29

Austauschformat...................................................... 243

Auswahlabfrage ........................................................ 385

Axis ................................................................................ 353

AxisX

ChartArea ................................................................ 353

AxisY

ChartArea ................................................................ 353

B

BackColor........................................................................ 38

Basisklasse................................................................... 212

Methode erreichen ............................................... 213

Bedingung ...................................................................... 69

Befehlsschaltfläche..................................................... 21

Bericht

Datenbank............................................................... 377

Bezeichnungsfeld ........................................................ 21

Beziehung........................................................... 365, 368

erstellen .................................................................... 381

Bézierkurve................................................................. 495

Bild

in Zeichnung ........................................................... 453

Bildlaufleiste ................................................................. 64

Bitmap .......................................................................... 350

body ............................................................................... 423

Bookmarks

Document ................................................................ 304

Boolean............................................................................ 43

Border Style ................................................................... 24

Borders

Table .......................................................................... 304

Breakpoint .................................................................. 122

Browser ........................................................................ 419

Brush ............................................................................. 445

Button .............................................................................. 21

ByRef ............................................................................. 165

Byte ................................................................................... 42

ByVal ............................................................................. 166

C

Calendar ....................................................................... 436

Canvas .......................................................................... 487

Left.............................................................................. 488

Top ............................................................................. 488

Cascading Style Sheets ........................................... 420

Case ................................................................................... 73

Case Else.......................................................................... 73

Catch.............................................................................. 120

Ceiling() ........................................................................ 295

Cell

Table .......................................................................... 304

Cells ............................................................................... 307

Worksheet................................................................ 307

Char ........................................................................ 43, 241

Characters ................................................................... 306

Chars ............................................................................. 240

Chart.............................................................................. 350

ChartAreas

Chart.......................................................................... 353

ChartImageFormat .................................................. 354

ChartType

Series.......................................................................... 353

CheckBox..................................................... 77, 431, 490

in Menü .................................................................... 316

Checked .................................................................... 77, 79

CheckedChanged.................................................. 77, 79

Child

WindowsFormsHost............................................ 505

Choose() .......................................................................... 75

Class ........................................................................ 26, 188

Clear()

generische Liste ..................................................... 401

Graphics ................................................................... 450

Series.......................................................................... 353

ClickOnce-Verteilung ............................................. 513

3703.book Seite 538 Donnerstag, 3. September 2015 2:52 14

Index

539

Clone() ................................................................. 149, 222

Close() .............................................................................. 28

Document ...................................................... 305, 308

Form ................................................................... 28, 141

OleDbConnection................................................. 384

StreamReader ........................................................ 267

Workbook................................................................ 308

XmlTextReader ..................................................... 290

XmlTextWriter ...................................................... 289

Code-Ansicht

Windows Forms ....................................................... 25

WPF............................................................................ 486

Code-Modul ...................................................... 142, 178

Codezeile

auskommentieren .................................................. 29

editieren...................................................................... 27

lang............................................................................... 26

Collection..................................................................... 225

Color....................................................... 38, 88, 344, 345

Pen ............................................................................. 450

SolidBrush ............................................................... 450

ColorDialog ................................................................. 344

ColumnIndex ............................................................. 359

Columns ....................................................................... 356

ListView.................................................................... 350

COM-Anwendung........................................... 303, 307

Combobox................................................................... 109

CommandText........................................................... 385

Common Controls ..................................................... 22

Connection.................................................................. 385

ConnectionString

OleDBConnection ....................................... 384, 439

Sammlung .............................................................. 417

vor 2007................................................................... 388

Connector/NET.......................................................... 415

Console ......................................................................... 179

Const................................................................................ 49

Container .............................................................. 59, 423

Contains()

generische Liste..................................................... 225

ContainsKey()............................................................. 234

ContainsValue()......................................................... 234

ContextMenuStrip ................................................... 320

Controls ........................................................................ 467

Add() .......................................................................... 207

Remove().................................................................. 207

Convert

ToDouble() ................................................................. 67

Convert (Forts.)

ToInt32() ......................................................... 180, 332

Cos() ............................................................................... 295

Count

Datenfeld................................................................. 172

generische Liste .................................................... 226

Items ......................................................................... 102

String ........................................................................ 245

COUNT() ....................................................................... 412

Create

Öffnungsmodus........................................... 266, 268

CreateGraphics() ....................................................... 445

CreateObject() .................................................. 303, 307

CSS .................................................................................. 420

CSV-Datei ..................................................................... 243

CurrentUICulture ..................................................... 362

D

Data Source ....................................................... 384, 416

DataBind().................................................................... 439

DataGrid ....................................................................... 439

DataGridView............................................................. 355

CellEventArgs ........................................................ 359

ColumnCollection ................................................ 356

Row ............................................................................ 358

RowCollection ....................................................... 357

TextBoxColumn ................................................... 356

DataSource .................................................................. 439

Date ................................................................................... 43

Datei............................................................................... 264

Änderungszeitpunkt ........................................... 280

Erzeugungszeitpunkt ......................................... 280

Information über ........................................ 270, 279

lesen ................................................................. 265, 273

löschen ..................................................................... 279

öffnen ....................................................................... 273

öffnen, Dialog........................................................ 339

schließen......................................................... 267, 273

schreiben ................................................................. 273

speichern, Dialog ................................................. 341

wahlfreier Zugriff ................................................. 272

Zugriffszeitpunkt ................................................. 280

Daten

speichern ................................................................. 264

Datenbank ......................................................... 365, 474

erstellen ................................................................... 378

3703.book Seite 539 Donnerstag, 3. September 2015 2:52 14

Page 68: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

Index

540

Datenbank (Forts.)

im Internet .............................................................. 436

im Internet ändern............................................... 439

verknüpfte Abfrage .............................................. 410

Datenbankdatei ........................................................ 377

Datenbanksystem .................................................... 368

Datenfeld ..................................................................... 144

als Parameter ......................................................... 173

Dimensionsgröße ................................................. 158

durchsuchen ................................................. 146, 149

eindimensional...................................................... 144

Größe ......................................................................... 172

initialisieren............................................................ 154

Klasse ........................................................................ 148

kopieren.................................................................... 149

mehrdimensional ................................................. 150

sortieren ................................................................... 149

Datenkapselung............................................... 189, 214

Datenpunkt ................................................................ 353

Datenreihe .................................................................. 352

Datensatz..................................................................... 366

ändern ....................................................................... 395

Anzahl ....................................................................... 412

auswählen ............................................................... 390

einfügen ................................................................... 396

gruppieren ............................................................... 413

löschen ...................................................................... 395

sortieren ................................................................... 393

Summe ...................................................................... 413

Datentyp ......................................................................... 42

benutzerdefiniert .................................................. 158

generisch .................................................................. 225

DateTime ..................................................................... 256

DateTimePicker......................................................... 261

DateTimePickerFormat ......................................... 261

Datum ........................................................................... 256

berechnen ................................................................ 259

Bestandteil .............................................................. 257

prüfen ........................................................................ 278

Datum und Uhrzeit

eingeben ................................................................... 261

Day ................................................................................. 257

DayOfWeek ................................................................. 257

DayOfYear ................................................................... 257

Debug ............................................................................ 122

beenden ................................................... 67, 119, 423

Debuggen

Konsolenanwendung .......................................... 185

DecimalPlaces

Zahlenauswahlfeld ................................................ 68

default.aspx ................................................................ 424

Delegate ....................................................................... 205

DELETE................................................................. 384, 395

DESC .............................................................................. 393

Description ................................................................. 343

Design-Ansicht

WPF ............................................................................ 486

Detailtabelle ............................................................... 371

Dezimaltrennzeichen............................................. 403

Diagramm ................................................................... 350

DialogResult ...................................................... 334, 339

DialogResultOK......................................................... 341

Dictionary

generisch.................................................................. 232

Dictionary(Of)............................................................ 233

Dim ......................................................................... 44, 145

Directory...................................................................... 279

Division........................................................................... 52

DLL ................................................................................. 235

erstellen .................................................................... 235

nutzen ....................................................................... 237

Do ...................................................................................... 92

Document

MS Word................................................................... 303

Documents

Application ............................................................. 303

Doppelklick.................................................................... 26

Doppelpunkt ................................................................. 70

Double ............................................................................. 42

DrawEllipse() .............................................................. 449

DrawImage()............................................................... 453

DrawLine()................................................................... 447

DrawPolygon() .......................................................... 448

DrawRectangle() ....................................................... 448

DrawString() ............................................................... 453

DropDown .................................................................. 110

DropDownList ........................................................... 110

DropDownStyle ........................................................ 110

Dynamic Link Library............................................. 235

E

E (Konstante).............................................................. 295

Eigenschaft

ändern.................................................................. 20, 34

3703.book Seite 540 Donnerstag, 3. September 2015 2:52 14

Index

541

Eigenschaft (Forts.)

Klasse ........................................................................ 188

statisch ..................................................................... 208

Eigenschaften-Fenster ....................................... 20, 23

Eigenschaftsmethode ............................................. 193

Ein- und Ausgabe

nur Text.................................................................... 179

Eingabe

Zahl ............................................................................ 180

Zeichenkette .............................................................. 64

Eingabeaufforderung .............................................. 184

Eingabe-Dialogfeld ................................................... 329

Eingabeformular ....................................................... 428

Einzelschrittverfahren............................................ 123

ElementHost............................................................... 507

ElementPosition ....................................................... 353

Ellipse ............................................................................ 449

Else

Block............................................................................. 72

einzeilig ....................................................................... 70

Enabled

Steuerelement ....................................................... 128

Timer ......................................................................... 473

Zeitgeber..................................................................... 61

End Class ...................................................................... 188

End If................................................................................ 72

End Interface .............................................................. 222

End Select....................................................................... 73

End Structure ............................................................. 160

endofdoc

Textmarke............................................................... 304

Enter............................................................................... 125

Entwicklung

eines Programms ................................................. 113

Enum ............................................................................... 51

Enumeration ................................................................ 50

Environment .............................................................. 344

Equals() ............................................................... 202, 229

Ereignis .................................................................... 21, 25

mehrere ....................................................................... 82

Ereigniskette............................................................... 133

endlos ....................................................................... 135

Ereignisliste ................................................................ 127

Ereignismethode

Verweis auf ............................................................. 205

Ereignisprozedur ........................................................ 25

erzeugen .................................................................. 488

Eulersche Zahl ............................................................ 295

Event Routing ............................................................ 488

Event Trigger .............................................................. 502

Excel.Range ................................................................. 309

Exception

Klasse........................................................................ 120

Exception Handling................................................. 117

ExecuteNonQuery() ....................................... 385, 389

ExecuteReader() ........................................................ 385

exe-Datei ............................................................... 30, 184

Exists()

Directory ................................................................. 280

File.............................................................................. 270

Exit Do ............................................................................. 92

Exit For............................................................................. 90

Exit Function.............................................................. 167

Exit Sub......................................................................... 162

Exp() ............................................................................... 295

eXtensible Application Markup Language ..... 485

F

Farbe

wählen, Dialog ...................................................... 344

Fehler............................................................................. 114

logischer .................................................................. 122

Fehlerkorrektur ......................................................... 115

Feld

Datenbanktabelle ................................................ 366

Feldname

Datenbanktabelle ................................................ 366

File ........................................................................ 270, 279

FileClose()..................................................................... 273

FileGetObject() ........................................................... 273

FileMode ...................................................................... 266

FileNames .................................................................... 339

FileOpen() .................................................................... 273

FilePutObject() ........................................................... 273

FileStream.................................................................... 265

FileSystemEntries() .................................................. 280

FillEllipse() ................................................................... 449

FillPolygon()................................................................ 448

FillRectangle() ............................................................ 448

Filter............................................................................... 339

FirstDayOfWeek ........................................................... 51

Fixed Single.................................................................... 24

Floor() ............................................................................ 295

FolderBrowserDialog .............................................. 343

3703.book Seite 541 Donnerstag, 3. September 2015 2:52 14

Page 69: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

Index

542

Font ............................................................. 255, 316, 345

Font.Style..................................................................... 319

FontDialog .................................................................. 345

FontFamily.................................................................. 319

FontStyle.Bold ........................................................... 319

FontStyle.Italic........................................................... 319

For...................................................................................... 89

For Each ........................................................................ 103

Form ................................................................................. 19

form (HTML)............................................................... 431

Form_Activated ........................................................ 127

Form_Load..................................................................... 93

Format

DateTimePicker ..................................................... 261

Format() ....................................................................... 254

Formatvorlage ........................................................... 420

Formular ......................................................................... 19

aktivieren ................................................................. 127

anzeigen ................................................................... 141

Datenbank............................................................... 377

hinzufügen .............................................................. 138

löschen ...................................................................... 512

mehrere .................................................................... 138

verstecken................................................................ 141

Formularansicht .......................................................... 25

Formularbasierte Ressourcen ............................. 360

Formularvorlage....................................................... 512

Fortschrittsbalken.................................................... 328

Frames .......................................................................... 492

FromArgb().............................................................. 38, 88

FromFile() .................................................................... 453

Bitmap ...................................................................... 350

FullRowSelect

ListView .................................................................... 349

Funktion ...................................................................... 167

mathematische ..................................................... 295

zeichnen ................................................................... 457

G

Ganzzahldivision......................................................... 52

GDI+ ............................................................................... 445

Generische Liste..................................... 225, 228, 466

füllen.......................................................................... 401

leeren ......................................................................... 401

Generische Schnittstelle........................................ 229

Generischer Datentyp ............................................ 225

Generisches Dictionary ......................................... 232

Get-Accessor .............................................................. 194

GetCreationTime() ................................................... 280

GetCurrentDirectory()............................................ 280

GetFiles() ...................................................................... 280

GetLastAccessTime() ............................................... 280

GetLastWriteTime() ................................................. 280

GetType() ..................................................................... 204

GetUpperBound()..................................................... 158

Gleich

SQL ............................................................................. 391

VB.................................................................................. 54

Gleichheitszeichen .............................................. 27, 57

Grafik ............................................................................ 495

Graphics ....................................................................... 445

Grid ................................................................................ 494

Größer als

SQL ............................................................................. 391

VB.................................................................................. 54

GROUP BY ................................................................... 413

Groupbox ....................................................................... 83

Gültigkeitsbereich ............................................ 45, 164

H

Häkchen .......................................................................... 77

Haltepunkt.................................................................. 122

entfernen ................................................................. 123

Handles ........................................................................... 82

Hauptmenü ....................................................... 311, 474

head ............................................................................... 423

Headertext .................................................................. 357

Height .............................................................................. 34

Hide()............................................................................. 141

Hilfslinien ...................................................................... 32

Hilfstabelle

Datenbank .............................................................. 369

Hoch .............................................................................. 295

Hochkomma ................................................................. 29

Hour .............................................................................. 257

HTML............................................................................. 420

html ............................................................................... 423

HTML-Markierung ................................................... 423

Hyperlink .................................................................... 495

3703.book Seite 542 Donnerstag, 3. September 2015 2:52 14

Index

543

I

ICloneable .................................................................... 222

id...................................................................................... 425

IEquatable .................................................................... 229

If

Block............................................................................. 72

einzeilig ....................................................................... 70

IIf()..................................................................................... 74

Image

auf Button............................................................... 323

für ImageList.......................................................... 350

für Zeichnung ........................................................ 453

ImageList...................................................................... 350

Implementation........................................................ 221

Implements................................................................. 223

Imports ......................................................................... 199

Increment

Zahlenauswahlfeld ................................................. 68

Index

Datenbank ..................................................... 365, 369

Datenfeld................................................................. 145

eindeutig ................................................................. 369

index.htm .................................................................... 422

IndexOf()

Datenfeld................................................................. 149

generische Liste..................................................... 225

String ........................................................................ 245

IndexOfAny()

String ........................................................................ 245

IndexOutOfRangeException................................ 146

Inherits ......................................................................... 213

Initial Catalog ............................................................. 416

InitialDirectory .......................................................... 339

Initialisierung............................................................... 93

Inkonsistenz ............................................................... 366

input .............................................................................. 431

InputBox() ................................................................... 329

INSERT ................................................................. 384, 396

Insert() ........................................................................... 248

generische Liste..................................................... 225

ListBox...................................................................... 105

InsertParagraphAfter()

Range ........................................................................ 303

InsideLineStyle

Borders ..................................................................... 304

Installationsprogramm.......................................... 513

Instanz .......................................................................... 192

Instanziierung ........................................................... 191

Integer.............................................................................. 42

Integrität

referentielle ............................................................ 382

IntelliSense.................................................................. 115

Interface ............................................................. 221, 222

Internetanwendung ................................................ 419

Daten senden......................................................... 428

dynamisch .............................................................. 420

erstellen ................................................................... 422

Internetseite

formatieren ............................................................ 427

Interval

Timer.................................................................. 61, 329

InvalidCastException.............................................. 118

Klasse........................................................................ 121

Is ............................................................ 73, 152, 201, 326

Is Nothing .................................................................... 204

IsDate().......................................................................... 278

IsLoaded ....................................................................... 491

IsNumeric() ................................................................. 278

IsPostBack.................................................................... 430

Item

Bookmarks ............................................................. 304

Items .............................................................................. 100

ListView ................................................................... 350

J

Jahr ................................................................................. 257

JavaScript ..................................................................... 420

K

Kalender ....................................................................... 434

Kamera

3D-Körper................................................................ 500

key .................................................................................. 232

Keys................................................................................ 234

Kill() ................................................................................ 279

Klammer ......................................................................... 58

Klasse................................................................................ 26

abgeleitet ................................................................ 212

Definition ................................................................ 188

einbinden ................................................................ 199

ermitteln......................................................... 204, 205

3703.book Seite 543 Donnerstag, 3. September 2015 2:52 14

Page 70: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

Index

544

Klasse (Forts.)

statisches Element ............................................... 208

Klassenbibliothek

eigene ........................................................................ 235

Klassenhierarchie..................................................... 211

Kleiner als

SQL.............................................................................. 391

VB.................................................................................. 54

Kombinationsfeld .................................................... 109

in Menü .................................................................... 313

Kommandozeile ....................................................... 184

Parameter................................................................ 183

Kommentarzeile.......................................................... 29

Konfigurationsdaten .............................................. 515

Konsolenanwendung ............................................. 178

Konstante ....................................................................... 48

integriert .................................................................... 49

Konstruktor ....................................................... 195, 215

parameterlos .......................................................... 198

Kontextmenü ............................................................ 320

Kontrollkästchen......................................................... 77

in Menü .................................................................... 313

Kontrollstruktur .......................................................... 69

Koordinatensystem

3D-Körper ................................................................ 498

Kosinus......................................................................... 295

Kreiszahl ...................................................................... 295

L

Label ....................................................................... 21, 490

LabelStyle

Axis............................................................................. 354

Language...................................................................... 360

LargeChange

Schieberegler ............................................................ 89

LargeImageList

ListView .................................................................... 349

LastIndexOf()

String ......................................................................... 245

Laufzeitfehler............................................................. 117

Layout ........................................................................... 486

Legends

Chart .......................................................................... 353

Length

MS Word-Text ........................................................ 306

Zeichenkette ........................................................... 240

Licht

3D-Körper ................................................................ 500

LIKE (SQL) .................................................................... 392

Like (VB) .......................................................................... 54

LineSegment .............................................................. 497

Linie ............................................................................... 447

List(Of ...) ...................................................................... 227

ListBox................................................................. 100, 490

ListBoxItem ................................................................ 492

Liste

generisch........................................................ 225, 228

Listenansicht

mit Bild ..................................................................... 347

Listenfeld ..................................................................... 100

ListView........................................................................ 347

ListViewItem .............................................................. 349

localhost ...................................................................... 423

Localizable .................................................................. 360

Location ................................................................... 34, 59

Log() ............................................................................... 295

Log10() .......................................................................... 295

Logarithmus............................................................... 295

Lokal ................................................................................. 45

Lokalisierung ............................................................. 360

Long .................................................................................. 42

Loop .................................................................................. 92

M

m:n-Relation .............................................................. 371

Main()............................................................................ 178

MainWindow.xaml.................................................. 486

MainWindow.xaml.vb............................................ 488

Markierungssprache ............................................... 420

Mastertabelle ............................................................. 371

Material

3D-Körper ................................................................ 500

Math .............................................................................. 295

Math.Floor()................................................................... 96

MaxDate

DateTimePicker..................................................... 263

Maximum

Datenfeld ................................................................. 146

Fortschrittsbalken ................................................ 329

Schieberegler ............................................................ 88

Zahlenauswahlfeld ................................................ 68

MaxLength..................................................................... 65

3703.book Seite 544 Donnerstag, 3. September 2015 2:52 14

Index

545

MaxSize ........................................................................ 346

mdb-Datei.................................................................... 379

Me ............................................................................ 28, 190

Mehrfachauswahl ....................................... 33, 73, 108

Mehrfachvererbung ................................................ 221

Mehrsprachigkeit ..................................................... 360

Menü.............................................................................. 311

MenuStrip.................................................................... 311

MeshGeometry3D .................................................... 500

Message ........................................................................ 120

MessageBox ................................................................ 333

MessageBoxButtons................................................ 334

MessageBoxIcon ....................................................... 334

Methode ....................................................................... 162

Klasse ........................................................................ 188

statisch ..................................................................... 208

überladen ................................................................ 196

Microsoft Access Database Engine .................... 383

Microsoft Excel 15.0 Object Library ................... 301

Microsoft Word 15.0 Object Library................... 301

Microsoft.ACE.OLEDB.12.0 .................................... 384

Microsoft.Office.Interop.Excel ............................ 302

Microsoft.Office.Interop.Word............................ 302

Millisecond.................................................................. 257

Millisekunde ............................................................... 257

MinDate

DateTimePicker .................................................... 263

Minimum

Datenfeld................................................................. 146

Fortschrittsbalken ............................................... 329

Schieberegler............................................................. 88

Zahlenauswahlfeld ................................................. 68

MinSize ......................................................................... 346

Minute........................................................................... 257

Mod .................................................................................. 52

modal ............................................................................ 141

Modul

allgemein ................................................................ 142

Modularisierung ................................................ 87, 162

Module1.vb .................................................................. 178

Modulo ........................................................................... 52

Monat ............................................................................ 257

Month............................................................................ 257

MoveToNextAttribute()

XmlTextReader ..................................................... 290

MS Access..................................................................... 376

vor 2007................................................................... 388

MS Excel

Arbeitsmappe drucken ...................................... 308

Arbeitsmappe erstellen...................................... 306

Arbeitsmappe lesen ............................................ 308

MS Word

Dokument drucken ............................................. 305

Dokument erstellen ............................................ 302

Dokument lesen ................................................... 305

MultiExtended........................................................... 108

MultiLine ........................................................................ 64

Multiplikation............................................................... 52

MultiSelect .................................................................. 339

Mustervergleich ........................................................... 54

My.MySettings()........................................................ 516

MyBase......................................................... 93, 213, 216

MyBase.New()............................................................. 216

MySQL ........................................................................... 415

MySQL.Data ................................................................ 416

MySql.Data.MySqlClient........................................ 416

MySqlClient ................................................................ 416

MySqlCommand....................................................... 416

MySqlConnection..................................................... 416

MySqlDataReader ..................................................... 416

N

Nachkommastellen

Datentyp .................................................................... 45

Zahlenauswahlfeld................................................. 68

Name ................................................................................ 23

Namenskonvention ............................................ 22, 37

Namensraum ............................................................. 198

einbinden ................................................................ 199

namespace .................................................................. 198

NavigationWindow.................................................. 493

NET-Treiber ................................................................. 415

New ......................................................................... 36, 191

Konstruktor............................................................ 195

Next................................................................................... 90

Nicht-Operator ............................................................. 55

Nicht-proportionale Schriftart............................ 254

NodeType

XmlTextReader ..................................................... 290

NOT (SQL)..................................................................... 392

Not (VB) ........................................................................... 55

Nothing .............................................................. 204, 309

3703.book Seite 545 Donnerstag, 3. September 2015 2:52 14

Page 71: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

Index

546

Now ................................................................................ 256

NumericUpDown .............................................. 68, 249

O

Object ................................................................... 202, 218

Objekt

erzeugen ................................................................... 195

identisch ................................................................... 203

Schreibweise ............................................................. 96

temporäres .............................................................. 231

Objektorientierung ................................................. 187

Objektverweis ............................................................ 191

dasselbe Objekt...................................................... 201

vergleichen .............................................................. 390

Oder-Operator .............................................................. 55

Of ........................................................................... 227, 233

Öffnungsmodus........................................................ 266

OleDb ............................................................................ 385

OleDbCommand....................................................... 385

OleDbConnection .................................................... 384

OleDbReader .............................................................. 385

OnSelectionChanged .............................................. 436

Open

Öffnungsmodus .................................................... 266

Open() .................................................................. 305, 309

OleDbConnection ................................................. 384

OpenFileDialog.......................................................... 339

Operator.......................................................................... 51

für Berechnungen ................................................... 52

logisch ............................................................... 55, 392

Priorität ...................................................................... 57

Rangfolge................................................................... 57

Vergleich .......................................................... 54, 201

Zuweisung ................................................................. 57

option ........................................................................... 434

Optional ....................................................................... 169

Optionsschaltfläche ................................................... 79

mehrere Gruppen ................................................... 83

OR (SQL) ....................................................................... 392

Or (VB).............................................................................. 55

Bit-Operator............................................................ 319

ORDER BY .................................................................... 393

OutsideLineStyle

Borders...................................................................... 304

OverflowException......................................... 118, 121

Overloads .................................................................... 213

Overridable ................................................................. 218

Overrides ............................................................ 218, 219

P

Page ...................................................................... 425, 493

Page_Load ................................................................... 425

Page-Direktive ........................................................... 425

Paint-Ereignis ............................................................ 455

PaintEventArgs ......................................................... 456

Panel....................................................................... 59, 461

Paragraphs .................................................................. 305

Document................................................................ 303

ParamArray ................................................................ 171

Parameter.................................................................... 163

beliebig viele ........................................................... 171

optional .................................................................... 169

PasswordChar ............................................................... 65

Passwortabfrage .......................................................... 65

Path................................................................................ 497

PathFigure................................................................... 495

PathGeometry ........................................................... 495

Peek()............................................................................. 267

Pen ................................................................................. 445

Pfadangabe

relativ ........................................................................ 271

Pfadgeometrie ........................................................... 495

PI ..................................................................................... 295

Pinsel............................................................................. 445

Farbe .......................................................................... 450

Pixel .................................................................................. 34

Platzhalter ................................................................... 392

Point .............................................................. 36, 449, 458

Points

Series.......................................................................... 353

Polygon ........................................................................ 448

Polymorphie .............................................................. 217

Position

Legends..................................................................... 353

Potenzierung ................................................................ 52

Pow().............................................................................. 295

PresentationCore ..................................................... 507

PresentationFramework ....................................... 507

Preserve ....................................................................... 155

Primärindex ............................................................... 369

Primärschlüssel erstellen ..................................... 380

3703.book Seite 546 Donnerstag, 3. September 2015 2:52 14

Index

547

Print()

Printing .................................................................... 354

Printing

Chart ......................................................................... 354

PrintingManager

Chart ......................................................................... 354

PrintOut()

Document ............................................................... 305

PrintOutEx()

Workbook................................................................ 308

PrintPreview()

Printing .................................................................... 354

Private ................................................. 46, 169, 189, 190

Programm

beenden....................................................................... 30

starten ......................................................................... 29

testen ........................................................................... 30

Programmentwicklung .......................................... 113

Programmierung

clientseitig .............................................................. 420

ereignisgesteuert.................................................. 133

serverseitig ............................................................. 420

ProgressBar ................................................................. 328

Projekt

neu erzeugen ............................................................ 19

neu erzeugen (WPF) ............................................ 485

öffnen .......................................................................... 30

schließen..................................................................... 30

speichern .................................................................... 25

Verweis hinzufügen ............................................ 415

Projektmappen-Explorer......................................... 20

Alles anzeigen........................................................ 301

Projektressourcen .................................................... 360

Projektvorlage............................................................ 513

Properties Window .................................................... 20

Property........................................................................ 193

Protected ...................................................................... 215

Provider ........................................................................ 384

Prozedur ................................................................ 26, 162

allgemein ................................................................... 86

verlassen.................................................................. 162

Public ......................................... 46, 140, 189, 190, 214

Q

Queue ............................................................................ 225

Quit()

Application .................................................... 305, 308

R

RadioButton ........................................................ 79, 431

Random Access ......................................................... 272

Randomize() .................................................................. 93

Range

Document ...................................................... 303, 305

Rangfolge ........................................................................ 53

Read()............................................................................. 387

XmlTextReader ..................................................... 290

Reader ........................................................................... 385

ReadLine()

Console .................................................................... 179

StreamReader........................................................ 267

Rechenoperator............................................................ 52

Rechteck ....................................................................... 448

Rectangle...................................................................... 448

ReDim ........................................................................... 155

Redundanz .................................................................. 366

Referenztyp................................................................. 200

Registrierung.............................................................. 511

Rekursion..................................................................... 175

Relation ........................................................................ 368

erstellen ................................................................... 381

Relational..................................................................... 365

Remove()

Controls ................................................................... 471

Dictionary ............................................................... 234

generische Liste .................................................... 226

String ........................................................................ 250

RemoveAt()

generische Liste ........................................... 225, 481

ListBox...................................................................... 105

Replace()

String ............................................................... 253, 403

Resources.resx ........................................................... 362

Ressourcen .................................................................. 360

resx-Datei .................................................................... 361

Return ................................................................. 167, 169

Ringtausch .................................................................. 166

Rnd() ................................................................................. 92

3703.book Seite 547 Donnerstag, 3. September 2015 2:52 14

Page 72: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

Index

548

RootFolder................................................................... 343

Rotationstransformation...................................... 502

Round()......................................................................... 295

RowIndex .................................................................... 359

Rows .............................................................................. 357

Rückgabewert ................................................... 167, 169

runat .............................................................................. 425

Runden ......................................................................... 295

S

SaveAs()

Document ................................................................ 305

Workbook ................................................................ 308

SaveFileDialog ........................................................... 341

SaveImage()

Chart .......................................................................... 354

Schalter............................................................................ 77

Schieberegler................................................................. 87

Schleife ............................................................................ 89

For Each .................................................................... 103

geschachtelt............................................................ 151

Schlüssel-Wert-Paar ................................................ 232

Schnittstelle................................................................ 221

generisch .................................................................. 229

Schrift............................................................................ 316

auswählen, Dialog ............................................... 345

Schriftart ...................................................................... 316

nicht-proportional ............................................... 254

Schriftgröße................................................................ 318

Schriftstil ..................................................................... 319

Schrittweite

Schleife ........................................................................ 89

Zahlenauswahlfeld ................................................ 68

script.............................................................................. 425

Scrollbalken ................................................................ 100

ScrollBars

Textfeld ............................................................. 64, 322

Second .......................................................................... 257

Seiten

in Frames ................................................................. 492

Sekundärindex .......................................................... 369

Sekunde........................................................................ 257

SELECT ................................................................. 384, 390

select (HTML) ............................................................. 434

Select Case ...................................................................... 73

SelectAll() ..................................................................... 137

Selected

DataGridView ........................................................ 357

SelectedDate............................................................... 436

SelectedIndex

ComboBox............................................................... 318

ListBox ...................................................................... 102

SelectedIndexChanged .......................................... 104

SelectedIndices ......................................................... 108

SelectedItem .............................................................. 102

SelectedItems ............................................................ 108

SelectedPath............................................................... 343

SelectionMode ................................................. 108, 110

Semikolon ................................................................... 243

sender ........................................................................... 326

Separator ..................................................................... 313

Series

Chart.......................................................................... 352

SeriesChartType........................................................ 353

Serversteuerelement ..................................... 427, 434

Set-Accessor ............................................................... 194

SetCurrentDirectory() ............................................ 280

Shared ........................................................................... 209

Short ................................................................................. 42

Show(), MessageBox................................................ 333

ShowColor................................................................... 346

ShowDialog()

Standarddialogfeld.............................................. 339

Unterformular ....................................................... 141

ShowNewFolderButton ......................................... 343

Simple ........................................................................... 110

Sin() ................................................................................ 295

Single................................................................................ 42

Sinus .............................................................................. 295

Size

Eigenschaft ............................................................... 34

Schrift ........................................................................ 317

Struktur ...................................................................... 36

Slider ............................................................................. 490

SmallChange

Schieberegler ............................................................ 89

SmallImageList

ListView .................................................................... 349

SolidBrush................................................................... 447

Solution Explorer ........................................................ 20

Sort() .............................................................................. 149

SpecialFolder.............................................................. 344

Spin-Button ................................................................ 263

3703.book Seite 548 Donnerstag, 3. September 2015 2:52 14

Index

549

Split()

String ........................................................................ 243

SQL.................................................................................. 384

Großschrift.............................................................. 385

typische Fehler ...................................................... 396

Sqrt() .............................................................................. 295

Stack ............................................................................... 225

StackOverFlowException ...................................... 135

StackPanel ................................................................... 487

Startformular ............................................................. 512

Startparameter .......................................................... 183

Startzustand ................................................................. 23

Statische Variable ....................................................... 46

Statusleiste .................................................................. 327

StatusStrip ................................................................... 327

Step................................................................................... 89

Steuerelement

Abstand einstellen .................................................. 33

aktivieren ......................................................... 61, 128

ausrichten .................................................................. 33

auswählen.................................................................. 22

einfügen ...................................................................... 21

Größe ........................................................................... 34

Hintergrundfarbe ................................................... 38

Kontextmenü ........................................................ 320

kopieren ...................................................................... 34

Liste ........................................................................... 467

markieren................................................................... 32

mit Taste bedienen .............................................. 132

Position ................................................................ 34, 59

sichtbar .................................................................... 128

zur Laufzeit erzeugen ................................ 206, 461

zur Laufzeit löschen ................................... 461, 471

Stift ................................................................................. 445

Dicke.......................................................................... 450

Farbe ......................................................................... 450

Storyboard................................................................... 502

StreamReader............................................................. 265

StreamWriter.............................................................. 267

String ...................................................................... 43, 239

feste Länge .............................................................. 272

Structure ...................................................................... 160

Structured Query Language ................................. 384

Struktur ........................................................................ 158

Definition ................................................................ 160

Stunde ........................................................................... 257

Style...................................................................... 317, 319

Sub .................................................................................... 26

SubItems

ListViewItem .......................................................... 350

submit ........................................................................... 431

Substring() ................................................................... 251

Subtract() ..................................................................... 259

Subtraktion .................................................................... 52

SUM() ............................................................................. 413

Symbolleiste ............................................................... 322

Syntaxfehler ........................................................ 27, 115

System.Data.OleDb ........................................ 385, 438

System.Globalization.............................................. 362

System.IO........................................................... 265, 266

System.Resources..................................................... 364

System.Text ................................................................ 289

System.Threading .................................................... 362

System.Windows.Forms ........................................ 505

System.Windows.Forms.DataVisualization.Char-

ting ............................................................................ 352

System.Xaml............................................................... 507

System.Xml ................................................................. 289

Systemton ................................................ 334, 337, 338

T

Tabelle

darstellen ................................................................ 355

Datenbank .............................................................. 377

Tabellenausgabe ....................................................... 254

Tabellenentwurf........................................................ 379

TabIndex ...................................................................... 131

Tables

Document ............................................................... 304

TabStop......................................................................... 131

Tag der Woche ........................................................... 257

Tag des Jahres............................................................. 257

Tag des Monats.......................................................... 257

Tan() ............................................................................... 295

Tangens ........................................................................ 295

Tastaturbedienung .................................................. 131

Taste

Alt............................................................................... 132

F11 ............................................................................... 123

F5 ................................................................................... 29

F9 ................................................................................ 122

Tasten-Key................................................................... 501

Tastenkombination

Strg+C ....................................................................... 182

3703.book Seite 549 Donnerstag, 3. September 2015 2:52 14

Page 73: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

Index

550

Tastenkombination (Forts.)

Strg+F5 ...................................................................... 179

Teilzeichenkette........................................................ 251

Template ............................................................. 512, 513

Temporäres Objekt .................................................. 231

Tetris.............................................................................. 461

Text

Document ................................................................ 305

in Zeichnung ........................................................... 452

mehrzeilig .................................................................. 64

Range......................................................................... 303

Steuerelement .......................................................... 23

Textfeld ............................................................. 64, 241

TextBox ........................................................................ 490

in Menü .................................................................... 313

TextChanged ........................................... 129, 249, 318

Textfeld ........................................................................... 64

alles auswählen ..................................................... 137

ändern ....................................................................... 129

kopieren...................................................................... 65

koppeln ..................................................................... 136

Then........................................................................... 70, 72

TickFrequency

Schieberegler ............................................................ 89

TimeOfDay.................................................................. 257

Timer ............................................................. 61, 329, 461

TimeSpan..................................................................... 259

title (HTML)................................................................. 423

Title (VB)....................................................................... 339

TitleAlignment

Axis............................................................................. 353

To ................................................................................ 73, 89

Today............................................................................. 256

TodayDayStyle .......................................................... 436

ToDouble() ..................................................................... 67

ToInt32() .............................................................. 180, 332

Toolbox ........................................................................... 19

ToolStrip ...................................................................... 323

ToShortDateString() ................................................ 436

ToString() ............................................................ 218, 259

Trennzeichen ............................................................. 243

Trim() ............................................................................ 242

TrimEnd() .................................................................... 242

TrimStart()................................................................... 242

Truncate() .................................................................... 295

Try .................................................................................. 120

Typ

ermitteln ........................................................ 204, 205

Type Converter ......................................................... 487

TypeOf Is............................................................. 205, 309

U

Übergabe

per Referenz ............................................................ 165

per Wert.................................................................... 164

Überladen.................................................................... 196

Überschreiben ........................................................... 218

Überwachungsfenster ............................................ 123

Uhrzeit................................................................. 256, 257

berechnen ................................................................ 259

UID ................................................................................. 416

Umwandlung

in ganze Zahl .......................................................... 332

in Zahl ......................................................................... 67

Und-Operator ............................................................... 55

Ungleich

SQL ............................................................................. 391

VB.................................................................................. 54

Unterformular........................................................... 138

Untermenü ................................................................. 311

Unterstrich .......................................................... 32, 392

Until.................................................................................. 92

UPDATE ..................................................... 384, 389, 395

Up-Down-Button...................................................... 263

V

Value

DateTimePicker..................................................... 263

Fortschrittsbalken ................................................ 329

HTML-Textfeld....................................................... 431

MS Excel-Zelle ........................................................ 358

Schieberegler ............................................................ 88

Zahlenauswahlfeld ................................................ 68

value .............................................................................. 232

ValueChanged

DateTimePicker..................................................... 264

Schieberegler ............................................................ 88

Zahlenauswahlfeld ................................................ 68

VALUES......................................................................... 396

Values ........................................................................... 234

Variable ........................................................................... 41

ausblenden................................................................ 46

3703.book Seite 550 Donnerstag, 3. September 2015 2:52 14

Index

551

Variable (Forts.)

Gültigkeitsbereich................................................... 41

klassenweit gültig ................................................... 46

Kontrolle.................................................................. 123

Name............................................................................ 41

öffentlich .......................................................... 46, 139

Startwert..................................................................... 47

statisch ........................................................................ 46

vbCrLf .............................................................................. 37

Verbindung

Datenbank .............................................................. 384

Vererbung.................................................................... 211

Vergleichsoperator .................................................. 391

Verknüpfung

Datenbank .............................................................. 368

erstellen (Datenbank) ......................................... 381

Verweis

auf Ereignismethode .......................................... 205

auf nichts ....................................................... 204, 309

hinzufügen ............................................................. 301

Verzeichnis

Datei- und Verzeichnisliste .............................. 280

Dateiliste ................................................................. 280

ermitteln .................................................................. 280

Existenz .................................................................... 280

Information über ................................................. 279

setzen ........................................................................ 280

wählen, Dialog ...................................................... 343

wechseln .................................................................. 285

Verzweigung ................................................................. 69

äußere.......................................................................... 71

innere ........................................................................... 71

Vieleck ........................................................................... 448

Vielgestaltigkeit ........................................................ 217

View

ListView.................................................................... 347

Visible............................................................................ 128

Application .................................................... 303, 307

Visual Studio Community 2015 ............................ 17

Vokabel-Lernprogramm ........................................ 474

Vorlage

WPF-Anwendung ................................................. 485

W

Wahrheitswert ............................................................. 78

WdLineStyle ................................................................ 304

WdWindowState ....................................................... 303

Webserver.................................................................... 421

lokaler....................................................................... 421

WeekendDayStyle .................................................... 436

Werkzeugkasten........................................................... 19

Wertebereich ................................................................. 45

Werttyp......................................................................... 200

WHERE .......................................................................... 391

While................................................................................. 92

Width ...................................................................... 34, 450

Window ........................................................................ 487

Windows 10.......................................................... 17, 185

Windows 7 ............................................................ 17, 184

Windows 8 ............................................................ 17, 185

Windows Forms in WPF ......................................... 505

Windows Presentation Foundation.................. 485

WindowsBase ............................................................. 507

WindowsFormsHost ............................................... 505

WindowsFormsIntegration ........................ 505, 507

WindowState

Application .................................................... 303, 307

With......................................................................... 96, 161

Wochentag .................................................................. 257

Words ............................................................................ 306

Workbook

MS Excel................................................................... 307

Worksheets

Application ............................................................. 307

Wörterbuch................................................................. 232

WPF ................................................................................ 485

WPF in Windows Forms ......................................... 507

WPF-Buch..................................................................... 486

WrapPanel ................................................................... 490

Write() ........................................................................... 268

Console .................................................................... 179

WriteAttributeString()

XmlTextWriter ...................................................... 289

WriteEndElement()

XmlTextWriter ...................................................... 289

WriteLine()......................................................... 182, 268

Console .................................................................... 179

WriteStartDocument()

XmlTextWriter ...................................................... 289

WriteStartElement()

XmlTextWriter ...................................................... 289

Wurzel ........................................................................... 295

3703.book Seite 551 Donnerstag, 3. September 2015 2:52 14

Page 74: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

Index

552

X

X (Location).................................................................... 34

x:Class ........................................................................... 487

x:Name ......................................................................... 488

XAML............................................................................. 485

mit Programmiercode ........................................ 486

XlWindowState ......................................................... 307

XML-Datei .......................................................... 286, 515

XML-Knoten ............................................................... 287

XmlNodeType............................................................ 290

xmlns ............................................................................ 487

XmlTextReader ......................................................... 290

XmlTextWriter .......................................................... 289

Xor ..................................................................................... 55

Bit-Operator............................................................ 319

Y

Y (Location) .................................................................... 34

Year ................................................................................ 257

Z

Zahl prüfen ................................................................. 278

Zahlenauswahlfeld............................................ 68, 249

Zeichen

einzelnes .................................................................. 240

prüfen........................................................................ 267

Zeichenkette............................................................... 239

durchsuchen ........................................................... 245

einfügen ................................................................... 248

ersetzen .................................................................... 253

Länge ......................................................................... 240

löschen...................................................................... 250

Teilzeichenkette .................................................... 251

trimmen ................................................................... 242

umwandeln............................................................... 66

verketten .................................................................... 56

zerlegen .................................................................... 243

Zeichnen ...................................................................... 445

dauerhaft ................................................................. 455

Zeichnung löschen .................................................. 450

Zeile lesen.................................................................... 267

Zeilenumbruch ............................................................ 26

Regeln.......................................................................... 31

Zeit ................................................................................. 256

Zeitgeber ......................................................................... 61

Zeitintervall ................................................................ 259

Zufallsgenerator ............................. 92, 145, 461, 474

Zuweisung...................................................................... 27

Zweidimensionale Grafik...................................... 495

3703.book Seite 552 Donnerstag, 3. September 2015 2:52 14

Page 75: Einstieg in Visual Basic 2015 – Ideal für ... · PDF fileLeseprobe Jeder kann programmieren lernen! Thomas Theis führt Sie gekonnt in die Grundlagen von Visual Basic ein. Probieren

Thomas Theis

Einstieg in Visual Basic 2015 – Ideal für Programmiereinsteiger geeignet552 Seiten, broschiert, 5. Auflage 2015 29,90 Euro, ISBN 978-3-8362-3703-1

www.rheinwerk-verlag.de/3813

Wir hoffen sehr, dass Ihnen diese Leseprobe gefallen hat. Sie dürfen sie gerne empfehlen und weitergeben, allerdings nur vollständig mit allen Seiten. Bitte beachten Sie, dass der Funktionsumfang dieser Leseprobe sowie ihre Darstel-lung von der E-Book-Fassung des vorgestellten Buches abweichen können. Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschützt. Alle Nut-zungs- und Verwertungsrechte liegen beim Autor und beim Verlag.

Teilen Sie Ihre Leseerfahrung mit uns!

Thomas Theis ist Dipl.-Ing. für Technische Informatik, verfügt über langjährige Erfahrung als EDV-Dozent, unter anderem an der Fachhochschule Aachen. Er leitet Schulungen zu C/C++, Visual Basic und Webprogram-mierung.

Know-how für Kreative.Wissen, wie’s geht.