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 Neues in Visual Basic 2008
12 Beispielprojekte
A Installation
B Lösungen der Übungsaufgaben
Stichwort

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

Spacer
 <<   zurück
Einstieg in Visual Basic 2008 von Thomas Theis
Inkl. zahlreicher Beispiele und Uebungen
Buch: Einstieg in Visual Basic 2008

Einstieg in Visual Basic 2008
geb., mit DVD
442 S., 24,90 Euro
Galileo Computing
ISBN 978-3-8362-1192-5
Online bestellenJetzt online bestellen
* versandkostenfrei in (D) und (A)
Pfeil 2 Grundlagen
  Pfeil 2.1 Variablen und Datentypen
    Pfeil 2.1.1 Namen, 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 Arithmetische Operatoren
    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 Panel, Zeitgeber, Textfeld, Zahlenauswahlfeld
    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 Kontrollkästchen, Optionsschaltfläche, Gruppe
    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 Listenfeld und Kombinationsfeld
    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 Kontrollkästchen, Optionsschaltfläche, Gruppe  Zur nächsten ÜberschriftZur vorigen Überschrift

Mithilfe der beiden Steuerelemente Kontrollkästchen und Optionsschaltfläche können Zustände unterschieden bzw. Eigenschaften eingestellt werden. Dazu werden Verzweigungen benötigt, 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. Man kann damit auch kennzeichnen, ob man eine bestimmte optionale Erweiterung wünscht 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 je nach Zustand unterschiedlich 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 nachfolgenden Programm p0224 werden alle oben genannten Möglichkeiten genutzt:

Abbildung 2.25  Zustand nach Klick auf Kontrollkästchen

Public Class frm0224 
   Private Sub cmdEreignis_Click( ... ) Handles ... 
      If chkSchalter.Checked Then 
         lblTest1.Text = "An" 
      Else 
         lblTest1.Text = "Aus" 
      End If 
   End Sub 
 
   Private Sub chkSchalter_CheckedChanged( ... ) _ 
         Handles ... 
      If chkSchalter.Checked Then 
         lblTest2.Text = "An" 
      Else 
         lblTest2.Text = "Aus" 
      End If 
   End Sub 
 
   Private Sub cmdAnschalten_Click( ... ) Handles ... 
      chkSchalter.Checked = True 
   End Sub 
End Class

Zur Erläuterung:

  • Der Zustand eines Kontrollkästchens (Häkchen gesetzt oder nicht) kann im Programm mithilfe einer einfachen Verzweigung ausgewertet werden.

    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 cmdEreignis_Click() wird aufgerufen, wenn der Benutzer den Button Ereignis betätigt. Erst in diesem Moment wird der Zustand des Kontrollkästchens (Eigenschaft Checked = 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 cmdAnschalten_Click() dient zum Setzen des Häkchens beim 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 auf True 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 nicht nur an, dass die betreffende Optionsschaltfläche vom Benutzer ausgewählt wurde, sondern auch, dass sie ihren Zustand geändert hat. Dies kann auch durch Programmcode geschehen.

Der Programmablauf wird auch hier meist so gestaltet, dass bei einem anderen Ereignis der aktuelle Zustand der Gruppe abgefragt wird und anschließend je nach Zustand unterschiedlich reagiert wird.

Es ist guter Programmierstil und verringert Folgefehler, wenn man eine der Optionsschaltflächen der Gruppe bereits zur Entwicklungszeit auf True setzt. 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 p0225 werden alle genannten Möglichkeiten genutzt. Es wird der Zustand angezeigt, nachdem der Benutzer

  • Blau gewählt,
  • den Button Ereignis betätigt,
  • Grün gewählt hat (siehe Abbildung 2.26).
Public Class frm0225 
   Private Sub cmdEreignis_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 ... 
      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 
 
   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 Sub 
End Class

Abbildung 2.26  Zustand nach zwei Klicks

Zur Erläuterung:

  • Der Zustand einer einzelnen Optionsschaltfläche kann im Programm mithilfe einer einfachen Verzweigung ausgewertet werden.
  • Der Zustand einer Gruppe von Optionsschaltflächen kann im Programm mithilfe einer mehrfachen Verzweigung ausgewertet werden.
  • Die Prozedur cmdEreignis_Click() wird aufgerufen, wenn der Benutzer den Button Ereignis 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 cmdAnschalten_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 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.

Public Class frm0226 
   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

Abbildung 2.27  Mehrere Ereignisse in einer Prozedur

Zur Erläuterung:

  • Die Prozedur optFarbeRot_CheckedChanged() wird durch alle drei CheckedChanged-Ereignisse aufgerufen: ... Handles optFarbeRot. CheckedChanged, optFarbeGrün.CheckedChanged, optFarbeBlau. CheckedChanged

Galileo Computing - Zum Seitenanfang

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

Falls im vorherigen Programm weitere Optionsschaltflächen hinzugefügt wurden, so gilt nach wie vor: Nur eine der Optionsschaltflächen ist ausgewählt.

Container

Benötigt man 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 muss man jede Gruppe einzeln in einen Container setzen. Ein Formular ist bereits ein Container, wir benötigen also einen weiteren Container.

Group Box

Als ein solcher Container kann beispielsweise das Steuerelement Gruppe (GroupBox) dienen. Die Optionsschaltfläche, die zu einem (und damit auch in einen) Container gehören soll, muss zuerst erzeugt werden. Anschließend wird sie in die gewünschte GroupBox verschoben. Mit der Zuweisung der Eigenschaft Text der GroupBox gibt man eine Beschriftung an.

Abbildung 2.28  Gruppen von Optionsschaltflächen

Public Class frm0227 
   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 optAppartment_CheckedChanged( ... ) _ 
         Handles optAppartment.CheckedChanged, _ 
         optPension.CheckedChanged, _ 
         optHotel.CheckedChanged 
      ' Unterkunft 
      If optAppartment.Checked Then 
         AusgabeUnterkunft = "Appartment" 
      ElseIf optPension.Checked Then 
         AusgabeUnterkunft = "Pension" 
      Else 
         AusgabeUnterkunft = "Hotel" 
      End If 
      lblAnzeige.Text = AusgabeUrlaubsort _ 
         & ", " & AusgabeUnterkunft 
   End Sub 
End Class

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 der modulweiten Variablen AusgabeUrlaubsort bzw. AusgabeUnterkunft ein Wert zugewiesen. Anschließend werden die beiden Variablen ausgegeben.
  • Die Variablen mussten modulweit deklariert werden, damit sie in der jeweils anderen Prozedur zur Verfügung stehen.

Übung p0228:

Erweitern Sie die Übung p0223. 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. Die Bewegung wird so lange ausgeführt, bis er den Stop-Button drückt oder eine Begrenzung erreicht wurde.

Abbildung 2.29  Übung p0228


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 kann man aber auch unabhängige, allgemeine Prozeduren schreiben, die von anderen Stellen des Programms aus aufgerufen werden. Diese Prozeduren können direkt im Codefenster eingegeben werden.

Nachfolgend eine geänderte Version des Programms p0227:

   ... 
   Private Sub optAppartment_CheckedChanged( ... ) _ 
         Handles optAppartment.CheckedChanged, _ 
         optPension.CheckedChanged, _ 
         optHotel.CheckedChanged 
      ' Unterkunft 
      If optAppartment.Checked Then 
         AusgabeUnterkunft = "Appartment" 
      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

Zur Erläuterung:

  • Abgebildet wird nur der zweite Teil der Klasse.
  • Am Ende der beiden Ereignisprozeduren optAppartment_Checked Changed() 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.6, »Prozeduren und Funktionen«, 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 2008






Einstieg in Visual Basic 2008
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Visual Basic 2008






 Visual Basic 2008


Zum Katalog: Einstieg in Visual C++ 2008






 Einstieg in
 Visual C++ 2008


Zum Katalog: Einstieg in Visual C# 2008






 Einstieg in
 Visual C# 2008


Zum Katalog: Visual C# 2008






 Visual C# 2008


Zum Katalog: Visual C# - Video-Training






 Visual C# -
 Video-Training


Zum Katalog: Einstieg in PHP 5 und MySQL 5






 Einstieg in PHP 5
 und MySQL 5


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





Copyright © Galileo Press 2008
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