Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
1 Einführung
2 Grundlagen
3 Fehlerbehandlung
4 Erweiterte Grundlagen
5 Objektorientierte Programmierung
6 Wichtige Klassen in .NET
7 Weitere Elemente eines Windows-Programms
8 Datenbank-Anwendungen mit ADO.NET
9 Internet-Anwendungen mit ASP.NET
10 Zeichnen mit GDI+
11 Beispielprojekte
A Installation und technische Hinweise
B Lösungen der Übungsaufgaben
Stichwort

Download:
- ZIP, ca. 7,8 MB
Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Einstieg in Visual Basic 2010 von Thomas Theis
Inkl. Visual Studio Express Editions
Buch: Einstieg in Visual Basic 2010

Einstieg in Visual Basic 2010
2., akt. und erw. Aufl., Klappbroschur, mit DVD
467 S., 24,90 Euro
Galileo Computing
ISBN 978-3-8362-1541-1
Pfeil 2 Grundlagen
Pfeil 2.1 Variablen und Datentypen
Pfeil 2.1.1 Namen und Werte
Pfeil 2.1.2 Deklarationen
Pfeil 2.1.3 Datentypen
Pfeil 2.1.4 Gültigkeitsbereich
Pfeil 2.1.5 Konstanten
Pfeil 2.1.6 Enumerationen
Pfeil 2.2 Operatoren
Pfeil 2.2.1 Rechenoperatoren
Pfeil 2.2.2 Vergleichsoperatoren
Pfeil 2.2.3 Logische Operatoren
Pfeil 2.2.4 Verkettungsoperator
Pfeil 2.2.5 Zuweisungsoperatoren
Pfeil 2.2.6 Rangfolge der Operatoren
Pfeil 2.3 Einfache Steuerelemente
Pfeil 2.3.1 Panel
Pfeil 2.3.2 Zeitgeber
Pfeil 2.3.3 Textfelder
Pfeil 2.3.4 Zahlenauswahlfeld
Pfeil 2.4 Verzweigungen
Pfeil 2.4.1 Einzeiliges If…Then…Else
Pfeil 2.4.2 If…Then…Else-Block
Pfeil 2.4.3 Select Case
Pfeil 2.4.4 Funktion IIf
Pfeil 2.4.5 Funktion Choose
Pfeil 2.4.6 Übungen
Pfeil 2.5 Verzweigungen und Steuerelemente
Pfeil 2.5.1 Kontrollkästchen
Pfeil 2.5.2 Optionsschaltfläche
Pfeil 2.5.3 Mehrere Ereignisse in einer Prozedur behandeln
Pfeil 2.5.4 Mehrere Gruppen von Optionsschaltflächen
Pfeil 2.5.5 Prozedur ohne Ereignis, Modularisierung
Pfeil 2.6 Schleifen
Pfeil 2.6.1 For ... Next
Pfeil 2.6.2 Do ... Loop
Pfeil 2.6.3 With
Pfeil 2.6.4 Übungen
Pfeil 2.7 Schleifen und Steuerelemente
Pfeil 2.7.1 Listenfeld
Pfeil 2.7.2 Listenfeld füllen
Pfeil 2.7.3 Wichtige Eigenschaften
Pfeil 2.7.4 Wechsel der Auswahl
Pfeil 2.7.5 Wichtige Methoden
Pfeil 2.7.6 Mehrfachauswahl
Pfeil 2.7.7 Kombinationsfelder


Galileo Computing - Zum Seitenanfang

2.5 Verzweigungen und Steuerelemente Zur nächsten ÜberschriftZur vorigen Überschrift

In diesem Abschnitt werden Kontrollkästchen und Optionsschaltflächen bzw. Gruppen von Optionsschaltflächen eingeführt. Damit können Sie Zustände unterscheiden bzw. Eigenschaften einstellen. Dazu benötigen Sie Verzweigungen, die Gegenstand des vorherigen Abschnitts waren.


Galileo Computing - Zum Seitenanfang

2.5.1 Kontrollkästchen Zur nächsten ÜberschriftZur vorigen Überschrift

Checkbox

Das Kontrollkästchen (Checkbox) bietet dem Benutzer die Möglichkeit, zwischen zwei Zuständen zu wählen, z. B. An oder Aus, wie bei einem Schalter. Sie können damit auch kennzeichnen, ob Sie eine bestimmte optionale Erweiterung wünschen oder nicht. Der Benutzer bedient ein Kontrollkästchen, indem er ein Häkchen setzt oder entfernt.

CheckedChanged

Das wichtigste Ereignis ist beim Kontrollkästchen nicht der Click, sondern das Ereignis CheckedChanged. Dieses Ereignis zeigt nicht nur an, dass das Kontrollkästchen vom Benutzer bedient wurde, sondern auch, dass es seinen Zustand geändert hat. Dies kann beispielsweise auch durch Programmcode geschehen. Eine Ereignisprozedur zu CheckedChanged löst in jedem Fall etwas aus, sobald das Kontrollkästchen (vom Benutzer oder vom Programmcode) geändert wurde.

An/Aus

Allerdings wird der Programmablauf meist so gestaltet, dass bei einem anderen Ereignis der aktuelle Zustand des Kontrollkästchens (An/Aus) abgefragt 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

Im Projekt Kontrollkästchen werden alle oben genannten Möglichkeiten genutzt, siehe Abbildung 2.24.

Abbildung 2.24 Zustand nach Klick auf Kontrollkästchen

Der Programmcode:

Public Class Form1
    Private Sub cmdPrüfen_Click(...) Handles ...
        If chkSchalter.Checked Then
            lblTest1.Text = "An"
        Else
            lblTest1.Text = "Aus"
        End If
    End Sub

    Private Sub chkSchalter_CheckedChanged(...
            ) Handles chkSchalter.CheckedChanged
        If chkSchalter.Checked Then
            lblTest2.Text = "An"
        Else
            lblTest2.Text = "Aus"
        End If
    End Sub

    Private Sub cmdUmschalten_Click(...) Handles ...
        chkSchalter.Checked =
            Not chkSchalter.Checked
    End Sub
End Class

Listing 2.17 Projekt »Kontrollkästchen«

Zur Erläuterung:

  • Den Zustand eines Kontrollkästchens (Häkchen gesetzt oder nicht) können 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 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 aufgerufen, wenn der Benutzer das Kontrollkästchen benutzt, also ein Häkchen 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 Kontrollkästchen per Programmcode. Dies kommt in Windows-Anwendungen häufig vor, wenn es logische Zusammenhänge zwischen mehreren Steuerelementen gibt. Die Eigenschaft Checked wird mithilfe des logischen Operators Not auf True bzw. auf False gesetzt. Dies führt wiederum zum Ereignis chkSchalter_CheckedChanged und dem Ablauf der zugehörigen, oben erläuterten Ereignisprozedur.

Galileo Computing - Zum Seitenanfang

2.5.2 Optionsschaltfläche Zur nächsten ÜberschriftZur vorigen Überschrift

Radio Button

Optionsschaltflächen (Radio Buttons) treten immer in Gruppen auf und bieten dem Benutzer die Möglichkeit, zwischen zwei oder mehr Möglichkeiten zu wählen, etwa zwischen den Farben Rot, Grün oder Blau. Bei zusammengehörigen Optionsschaltflächen kann der Benutzer genau eine per Klick auswählen. Alle anderen werden dann unmittelbar als Nicht ausgewählt gekennzeichnet.

CheckedChanged

Analog zum Kontrollkästchen ist das wichtigste Ereignis bei einer Optionsschaltfläche CheckedChanged. Dieses Ereignis zeigt an, dass die betreffende Optionsschaltfläche ihren Zustand geändert hat. Dies kann auch durch Programmcode geschehen.

Der Programmablauf wird hier meist so gestaltet, dass bei einem anderen Ereignis die aktuelle Auswahl innerhalb der Gruppe abgefragt wird und anschließ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 setzen. Dies muss nicht notwendigerweise die erste Optionsschaltfläche der Gruppe sein.

Checked

Die wichtigen Eigenschaften der Optionsschaltflächen sind Checked (mit den Werten True und False) und Text (zur Beschriftung). Im nachfolgenden Programm im Projekt Optionen werden alle genannten Möglichkeiten genutzt. Es wird der Zustand angezeigt, nachdem der Benutzer

  • Blau gewählt,
  • den Button Prüfen betätigt,
  • Grün gewählt hat (siehe Abbildung 2.25).

Abbildung 2.25 Zustand nach den genannten Aktionen

Der Programmcode:

Public Class Form1
    Private Sub cmdPrüfen_Click(...) Handles ...
        If optFarbeRot.Checked Then
            lblAnzeige1.Text = "Rot"
        ElseIf optFarbeGrün.Checked Then
            lblAnzeige1.Text = "Grün"
        Else
            lblAnzeige1.Text = "Blau"
        End If
    End Sub

    Private Sub optFarbeRot_CheckedChanged(...
            ) Handles optFarbeRot.CheckedChanged
        If optFarbeRot.Checked Then
            lblAnzeige2.Text = "Rot"
        End If
    End Sub

    Private Sub optFarbeGrün_CheckedChanged(...
            ) Handles optFarbeGrün.CheckedChanged
        If optFarbeGrün.Checked Then
            lblAnzeige2.Text = "Grün"
        End If
    End Sub

    Private Sub optFarbeBlau_CheckedChanged(...
            ) Handles optFarbeBlau.CheckedChanged
        If optFarbeBlau.Checked Then
            lblAnzeige2.Text = "Blau"
        End If
    End Sub

    Private Sub cmdSchalter_Click(...) Handles ...
        optFarbeRot.Checked = True
    End Sub
End Class

Listing 2.18 Projekt »Optionen«

Zur Erläuterung:

Auswahl oder Abwahl

  • Den Zustand einer einzelnen Optionsschaltfläche können Sie im Programm mithilfe einer einfachen Verzweigung auswerten. Es muss festgestellt werden, ob diese Optionsschaltfläche ausgewählt oder abgewählt wurde. In beiden Fällen tritt das Ereignis CheckedChanged auf.
  • Den Zustand einer Gruppe von Optionsschaltflächen können Sie im Programm 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 zur Auswahl einer bestimmten Optionsschaltfläche per Programmcode. Dies kommt in Windows-Anwendungen häufig vor, wenn es logische Zusammenhänge zwischen mehreren Steuerelementen gibt. Die Eigenschaft Checked wird auf True gesetzt. Dies führt wiederum zum Ereignis CheckedChanged der jeweiligen Optionsschaltfläche und zum Ablauf der zugehörigen, oben erläuterten Ereignisprozedur.

Innerhalb eines Formulars oder einer Groupbox (siehe übernächster Abschnitt) 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 Optionsschaltfläche.


Galileo Computing - Zum Seitenanfang

2.5.3 Mehrere Ereignisse in einer Prozedur behandeln Zur nächsten ÜberschriftZur vorigen Überschrift

Im folgenden Projekt MehrereEreignisse wird eine häufig verwendete Technik vorgestellt. 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

Dies ist möglich, da nach dem Schlüsselwort Handles zu Beginn der Ereignisprozedur mehrere Ereignisse genannt werden können. Im nachfolgenden Programm wird diese Technik verwendet, um den Zustand einer Gruppe von Optionsschaltflächen sofort anzuzeigen, wenn der Benutzer eine der Optionsschaltflächen auswählt, siehe Abbildung 2.26.

Abbildung 2.26 Mehrere Ereignisse in einer Prozedur

Der Programmcode:

Public Class Form1
    Private Sub optFarbeRot_CheckedChanged(...
            ) Handles optFarbeRot.CheckedChanged,
            optFarbeGrün.CheckedChanged,
            optFarbeBlau.CheckedChanged
        If optFarbeRot.Checked Then
            lblAnzeige.Text = "Rot"
        ElseIf optFarbeGrün.Checked Then
            lblAnzeige.Text = "Grün"
        Else
            lblAnzeige.Text = "Blau"
        End If
    End Sub
End Class

Listing 2.19 Projekt »MehrereEreignisse«

Zur Erläuterung:

  • Die Prozedur optFarbeRot_CheckedChanged() wird durch alle drei CheckedChanged-Ereignisse aufgerufen.

Galileo Computing - Zum Seitenanfang

2.5.4 Mehrere Gruppen von Optionsschaltflächen Zur nächsten ÜberschriftZur vorigen Überschrift

Falls in den beiden letzten Programmen weitere Optionsschaltflächen hinzugefügt wurden, so gilt nach wie vor: Nur eine der Optionsschaltflächen ist ausgewählt.

Container

Benötigen Sie aber innerhalb eines Formulars mehrere voneinander unabhängige Gruppen von Optionsschaltflächen, wobei in jeder der Gruppen jeweils nur eine Optionsschaltfläche ausgewählt sein soll, so müssen Sie jede Gruppe einzeln in einen Container setzen. Ein Formular ist bereits ein Container, wir benötigen also einen weiteren Container.

Groupbox

Als ein solcher Container kann beispielsweise das Steuerelement Gruppe (Groupbox) dienen. Mit der Zuweisung der Eigenschaft Text der Groupbox geben Sie eine Beschriftung an.

Zuordnung

Falls eine Groupbox markiert ist, dann wird eine neu erzeugte Optionsschaltfläche dieser Groupbox zugeordet und reagiert gemeinsam mit den anderen Optionsschaltflächen in dieser Groupbox. Anderenfalls wird sie dem Formular zugeordnet und reagiert gemeinsam mit den anderen Optionsschaltflächen, die im Formular außerhalb von Groupboxen stehen. Sie können eine bereits erzeugte Optionsschaltfläche auch im Nachhinein ausschneiden, das Ziel markieren und sie wieder einfügen, um die Zuordnung zu ändern.

Im Projekt Optionsgruppen werden zwei voneinander unabhängige Gruppen von Optionen verwendet, siehe Abbildung 2.27.

Abbildung 2.27 Zwei Gruppen von Radio Buttons

Der zugehörige Code:

Public Class Form1
    Dim AusgabeUrlaubsort As String
    Dim AusgabeUnterkunft As String

    Private Sub optBerlin_CheckedChanged(...
            ) Handles optBerlin.CheckedChanged,
            optParis.CheckedChanged,
            optRom.CheckedChanged
        ' Urlaubsort
        If optBerlin.Checked Then
            AusgabeUrlaubsort = "Berlin"
        ElseIf optParis.Checked Then
            AusgabeUrlaubsort = "Paris"
        Else
            AusgabeUrlaubsort = "Rom"
        End If

        lblAnzeige.Text = AusgabeUrlaubsort &
            ", " & AusgabeUnterkunft
    End Sub

    Private Sub optAppartement_CheckedChanged(...
            ) Handles optAppartement.CheckedChanged,
            optPension.CheckedChanged,
            optHotel.CheckedChanged
        ' Unterkunft
        If optAppartement.Checked Then
            AusgabeUnterkunft = "Appartement"
        ElseIf optPension.Checked Then
            AusgabeUnterkunft = "Pension"
        Else
            AusgabeUnterkunft = "Hotel"
        End If

        lblAnzeige.Text = AusgabeUrlaubsort &
            ", " & AusgabeUnterkunft
    End Sub
End Class

Listing 2.20 Projekt »Optionsgruppen«

Zur Erläuterung:

  • Bei einer Urlaubsbuchung können Zielort und Art der Unterkunft unabhä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. AusgabeUnterkunft ein Wert zugewiesen. Anschließend werden die beiden Variablen ausgegeben.
  • Die Variablen mussten klassenweit gültig deklariert werden, damit sie in der jeweils anderen Prozedur zur Verfügung stehen.

Übung

Übung ÜKranOptionen

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 Start-Button, siehe Abbildung 2.28. Die Bewegung wird so lange ausgeführt, bis er den Stop-Button drückt oder eine Begrenzung erreicht wurde.

Abbildung 2.28 Übung ÜKranOptionen


Galileo Computing - Zum Seitenanfang

2.5.5 Prozedur ohne Ereignis, Modularisierung topZur vorigen Überschrift

Allgemeine Prozedur

Bisher wurden nur Prozeduren behandelt, die mit einem Ereignis zusammenhingen. Darüber hinaus können Sie aber auch unabhängige, allgemeine Prozeduren 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 Optionsgruppen:

Public Class Form1
    Dim AusgabeUrlaubsort As String
    Dim AusgabeUnterkunft As String
[...]
    Private Sub optAppartement_CheckedChanged(...
            ) Handles ...
        ' Unterkunft
        If optAppartement.Checked Then
            AusgabeUnterkunft = "Appartement"
        ElseIf optPension.Checked Then
            AusgabeUnterkunft = "Pension"
        Else
            AusgabeUnterkunft = "Hotel"
        End If

        Anzeigen()
    End Sub

    Private Sub Anzeigen()
        lblAnzeige.Text = AusgabeUrlaubsort &
            ", " & AusgabeUnterkunft
    End Sub
End Class

Listing 2.21 Projekt »ProzedurOhneEreignis«

Zur Erläuterung:

  • Abgebildet wird nur der zweite Teil der Klasse.
  • Am Ende der beiden Ereignisprozeduren optAppartement_ CheckedChanged() und optBerlin_CheckedChanged() steht jeweils die Anweisung Anzeigen(). Dabei handelt es sich um einen Aufruf der Prozedur Anzeigen().
  • Diese Prozedur steht weiter unten. Sie ist nicht direkt an ein Ereignis gekoppelt.

Vorteil dieser Vorgehensweise: Gemeinsam genutzte Programmteile können ausgelagert werden und müssen nur einmal geschrieben werden. Man nennt diesen Vorgang bei der Programmierung auch Modularisierung. In Abschnitt 4.8 wird dieses Thema noch genauer behandelt.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






<< zurück
  Zum Katalog
Zum Katalog: Einstieg in Visual Basic 2010

Einstieg in Visual Basic 2010
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Visual Basic 2010






 Visual Basic 2010


Zum Katalog: Windows Presentation Foundation






 Windows Presentation
 Foundation


Zum Katalog: Silverlight 4






 Silverlight 4


Zum Katalog: Einstieg in Visual C# 2010






 Einstieg in
 Visual C# 2010


Zum Katalog: Visual C# 2010






 Visual C# 2010


Zum Katalog: Einstieg in PHP 5.3 und MySQL 5.4






 Einstieg in PHP 5.3
 und MySQL 5.4


Zum Katalog: PHP 5.3 und MySQL 5.4






 PHP 5.3 und
 MySQL 5.4


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2010
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de