1.4 Visual Basic 2012-Entwicklungsumgebung
Während der Projekterstellung lernen Sie Schritt für Schritt die Visual Studio 2012-Entwicklungsumgebung kennen.
1.4.1 Ein neues Projekt
Nach dem Aufruf des Programms Visual Studio Express 2012 für Windows Desktop 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 vorgeschlagen, dieser sollte geändert werden, zum Beispiel in MeinErstes.
Es erscheinen einige Elemente der Entwicklungsumgebung. Folgende Elemente sind besonders wichtig:
- Das Benutzerformular (engl.: Form) enthält die Oberfläche für den Benutzer des Programms (siehe Abbildung 1.3).
Abbildung 1.3 Benutzerformular
- Die Werkzeugsammlung (engl.: Toolbox) enthält die Steuerelemente für den Benutzer, mit denen er den Ablauf des Programms steuern kann. Sie werden vom Programm-Entwickler in das Formular eingefügt (siehe Abbildung 1.4).
Abbildung 1.4 Toolbox, mit verschiedenen Kategorien von Steuerelementen
- Das Eigenschaftenfenster (engl.: Properties Window) dient zum Anzeigen und Ändern der Eigenschaften von Steuerelementen innerhalb des Formulars durch den Programm-Entwickler (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 Eigenschaftenfenster
- Der Projektmappen-Explorer (engl.: Solution Explorer) zeigt das geöffnete Projekt und die darin vorhandenen Elemente (siehe Abbildung 1.6).
Abbildung 1.6 Projektmappen-Explorer
Sollten die Toolbox, das Eigenschaftenfenster oder der Projektmappen-Explorer einmal nicht sichtbar sein, so können Sie das betreffende Element über das Menü Ansicht einblenden. Sollte das Formular einmal nicht sichtbar sein, so können Sie es über einen Doppelklick auf den Namen (Form1.vb) im Projektmappen-Explorer einblenden.
Zunächst werden nur einfache Programme mit wenigen Elementen geschrieben, daher wird der Projektmappen-Explorer noch nicht benötigt. Es empfiehlt sich, das Eigenschaftenfenster nach oben zu vergrößern.
1.4.2 Einfügen von Steuerelementen
Zunä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 Ereignissen. In diesem Programm sollen die Buttons dazu dienen, den Text anzuzeigen bzw. das Programm zu beenden.
Um ein Steuerelement einzufügen, ziehen Sie es mithilfe der Maus von der Toolbox an die gewünschte Stelle im Formular. Alle Steuerelemente finden sich in der Toolbox unter Alle Windows Forms. Übersichtlicher ist der Zugriff über Allgemeine Steuerelemente (engl.: Common Controls), siehe Abbildung 1.7.
Abbildung 1.7 Toolbox, Allgemeine Steuerelemente
Ein Doppelklick auf ein Steuerelement in der Toolbox fügt es ebenfalls 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 Steuerelement können Sie durch Auswählen und Drücken der Taste entfernen.
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 Eigenschaftenfenster
Die eingefügten Steuerelemente haben zunächst einheitliche Namen und Aufschriften, diese sollten allerdings zur einfacheren Programmentwicklung geändert werden. Es haben sich bestimmte Namenskonventionen eingebürgert, die die Lesbarkeit erleichtern. Diese Namen beinhalten den Typ (mit drei Buchstaben abgekürzt) und die Aufgabe des Steuerelements (mit großem Anfangsbuchstaben).
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 (Optionsschaltflä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 Steuerelements auf dem Formular oder durch Auswahl aus der Liste am oberen Ende des Eigenschaftenfensters geschehen.
Im Eigenschaftenfenster 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
Die 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.
Zu diesem Zeitpunkt legen Sie den Startzustand fest, also die Eigenschaften, die die Steuerelemente zu Beginn des Programms bzw. eventuell während des gesamten Programms haben sollen. Viele Eigenschaften können Sie auch während der Laufzeit des Programms durch den Programmcode verändern lassen.
Typ | Eigenschaft | Einstellung |
Formular |
Text |
Mein erstes Programm |
Button |
Name |
cmdHallo |
Text |
Hallo |
|
Button |
Name |
cmdEnde |
Text |
Ende |
|
Label |
Name |
lblAnzeige |
Text |
(leer) |
|
BorderStyle |
Fixed Single |
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ählen, 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.
Sie finden alle in diesem Formular vorhandenen Steuerelemente in der Liste, die sich am oberen Ende des Eigenschaftenfensters öffnen lässt. Dabei zeigt sich ein Vorteil der einheitlichen Namensvergabe: Die Steuerelemente des gleichen Typs stehen direkt untereinander.
1.4.4 Speichern eines Projekts
Die Daten eines Visual-Basic-Projekts werden in verschiedenen Dateien gespeichert. Zum Speichern des gesamten Projekts wird der Menüpunkt Datei • Alle Speichern verwendet. Diesen Vorgang sollten Sie in regelmäßigen Abständen durchführen, damit keine Änderungen verloren gehen können.
Die in diesem Skript angegebenen Namen dienen als Empfehlung, um die eindeutige Orientierung und das spätere Auffinden von alten Programmen zu erleichtern.
1.4.5 Das Codefenster
Der 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 Programmcode und ordnen diesen Code dem Ereignis zu. Der Code wird in einer Ereignisprozedur abgelegt.
Zum Schreiben einer Ereignisprozedur führen Sie am besten einen Doppelklick auf das betreffende Steuerelement aus. Es erscheint das Codefenster. Zwischen der Formularansicht und der Codeansicht können Sie anschließend über die Menüpunkte Ansicht • Code bzw. Ansicht • Designer hin- und herschalten. Dies ist auch über die Registerkarten oberhalb des Formulars bzw. des Codefensters möglich, siehe Abbildung 1.11.
Abbildung 1.11 Registerkarten
Nach erfolgtem Doppelklick auf den Button Hallo erscheinen im Codefenster folgende Einträge:
Public Class Form1
Private Sub cmdHallo_Click(sender As Object,
e As EventArgs) Handles cmdHallo.Click
End Sub
End Class
Listing 1.1 Projekt »MeinErstes«, Button »Hallo«, ohne Code
Innerhalb der Ereignisprozedur ist der Platz für den eigenen Programmcode.
VB.NET ist eine objektorientierte Sprache. Ein wichtiges Element objektorientierter 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 dies hier noch nicht notwendig ist und eher verwirren würde.
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.
Die Anweisung Private Sub ... ist recht lang, daher wurde sie auf mehrere Zeilen verteilt. Seit der Version 2010 werden auch in Visual Basic Zeilenumbrüche an bestimmten Stellen einer Anweisung auf einfache Art und Weise ermöglicht. Dies 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 ausgeführte Doppelklick führt immer zu dem Ereignis, das am häufigsten mit dem betreffenden Steuerelement verbunden wird. Dies ist beim Button natürlich das Ereignis Click. Zu einem Steuerelement gibt es aber auch noch andere, mögliche Ereignisse.
1.4.6 Schreiben von Programmcode
In der Prozedur cmdHallo_Click() soll eine Befehlszeile eingefügt werden, so dass sie anschließend wie folgt aussieht:
Public Class Form1
Private Sub cmdHallo_Click(sender As Object,
e As EventArgs) Handles cmdHallo.Click
lblAnzeige.Text = "Hallo"
End Sub
End 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.
Der Inhalt einer Prozedur setzt sich aus einzelnen Anweisungen zusammen, die nacheinander ausgeführt werden. Die vorliegende Prozedur enthält nur eine Anweisung; in ihr wird mithilfe des Gleichheitszeichens eine Zuweisung durchgeführt.
Bei einer Zuweisung wird der Ausdruck rechts vom Gleichheitszeichen ausgewertet und der Variablen, der Objekt-Eigenschaft oder der Steuerelement-Eigenschaft links vom Gleichheitszeichen zugewiesen. Die Zeichenkette Hallo wird der Eigenschaft Text des Steuerelements lblAnzeige mithilfe der Schreibweise Steuerelement.Eigenschaft = Wert zugewiesen. Dies führt zur Anzeige des Werts.
Nach dem Wechsel auf die Formularansicht können Sie das nächste Steuerelement auswählen, für das eine Ereignisprozedur geschrieben werden soll.
Innerhalb des Codefensters können Sie Text mit den gängigen Methoden der Textverarbeitung editieren, kopieren, verschieben und löschen.
Sollten Sie bereits bei der Eingabe des Programmcodes Syntaxfehler gemacht haben, so wird dies angezeigt. Sie sollten den Code unmittelbar entsprechend korrigieren.
In der Ereignisprozedur cmdEnde_Click() soll der folgende Code stehen:
Private Sub cmdEnde_Click(sender As Object,
e As EventArgs) Handles cmdEnde.Click
Me.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.
Mit Me wird das aktuelle Objekt einer Klasse bezeichnet. Da wir uns innerhalb der Klasse für das aktuelle Formular befinden, bezieht sich Me auf dieses Formular. Streng genommen wäre Me nicht notwendig, aber es erhöht die Lesbarkeit des Programms.
Dies waren Beispiele zur Änderung der Eigenschaften eines Steuerelements zur Laufzeit des Programms durch Programmcode. Sie erinnern sich: Zu Beginn hatten wir die Start-Eigenschaften der Steuerelemente im Eigenschaftenfenster eingestellt.
1.4.7 Kommentare
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äutert, damit Sie selbst oder auch ein anderer Programmierer sie später leichter versteht. 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 Anwendung
Me.Close()
End Sub
Listing 1.4 Projekt »MeinErstes«, Button »Ende«, mit Kommentar
Ein kleiner Trick: Sollen bestimmte Programmzeilen für einen Test des Programms kurzfristig nicht ausgeführt werden, so können Sie sie auskommentieren, indem Sie das Hochkomma vor die betreffenden Zeilen setzen. Dies geht sehr schnell, indem Sie die betreffende(n) Zeile(n) markieren und anschließend das entsprechende Symbol im linken Bereich der Symbolleiste anklicken, siehe Abbildung 1.12. Rechts daneben befindet sich das Symbol, das die Auskommentierung nach dem Test wieder rückgängig macht.
Abbildung 1.12 Kommentar ein/aus
1.4.8 Starten, Ausführen und Beenden des Programms
Nach dem Einfügen der Steuerelemente und dem Erstellen der Ereignisprozeduren ist das Programm fertig und kann von Ihnen gestartet werden. Dazu wird der Start-Button in der Symbolleiste (dreieckiger Pfeil nach rechts) betätigt. Alternativ starten Sie das Programm über die Funktionstaste oder den Menüpunkt Debuggen • Debugging starten. Das Formular erscheint, das Betätigen der Buttons führt zum programmierten Ergebnis.
Zur regulären Beendigung eines Programms ist der Button mit der Aufschrift Ende vorgesehen. Möchten Sie ein Programm während des Verlaufs abbrechen, können Sie auch den End-Button in der Symbolleiste (Quadrat) betätigen.
Tritt während der Ausführung eines Programms ein Fehler auf, so wird dies 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.
Es wird empfohlen, das Programm bereits während der Entwicklung mehrmals durch Aufruf zu testen und nicht erst, wenn das Programm vollständig erstellt worden ist. Geeignete Zeitpunkte sind zum Beispiel
- nach dem Einfügen der Steuerelemente und dem Zuweisen der Eigenschaften, die sie zu Programmbeginn haben sollen.
- nach dem Erstellen jeder Ereignisprozedur.
1.4.9 Ausführbares Programm
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, so findet sich die zugehörige .exe-Datei des aktuellen Projekts im Verzeichnis Eigene Dateien\Visual Studio 2012\Projects\MeinErstes\MeinErstes\bin\Debug. Das Programm kann also im Windows-Explorer direkt über Doppelklick von Ihnen gestartet werden.
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
Sie können ein Projekt schließen über den Menüpunkt Datei • Projektmappe schließen. Falls Sie Veränderungen vorgenommen haben, werden Sie gefragt, ob Sie diese Änderungen speichern möchten.
Möchten Sie die Projektdaten sicherheitshalber zwischendurch speichern, so ist dies über den Menüpunkt Datei • Alle speichern möglich. Dies ist bei längeren Entwicklungsphasen sehr zu empfehlen.
Zum Öffnen eines vorhandenen Projekts wählen Sie den Menüpunkt Datei • Projekt öffnen. Im darauf folgenden Dialogfeld Projekt öffnen wählen Sie zunächst das gewünschte Projektverzeichnis aus und anschließend die gleichnamige Datei mit der Endung .sln.
1.4.11 Übung
Erstellen Sie ein Windows-Programm mit einem Formular, das zwei Buttons und ein Label beinhaltet, siehe Abbildung 1.13. Bei Betätigung des ersten 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.13 Übung ÜName
1.4.12 Regeln für Zeilenumbrüche
Seit der Version 2010 werden auch in Visual Basic Zeilenumbrüche an bestimmten Stellen einer Anweisung auf einfache Art und Weise ermöglicht. Dies erhöht die Lesbarkeit des Programmcodes. Einige Regeln wurden bereits im ersten Programm angewandt.
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
Ein 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
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
- 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 passender Stelle erläutert.
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.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.