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 4 Erweiterte Grundlagen
Pfeil 4.1 Steuerelemente aktivieren
Pfeil 4.1.1 Ereignis Enter
Pfeil 4.1.2 Eigenschaften Enabled und Visible
Pfeil 4.2 Bedienung per Tastatur
Pfeil 4.2.1 Eigenschaften TabIndex und TabStop
Pfeil 4.2.2 Tastenkombination für Steuerelemente
Pfeil 4.3 Ereignisgesteuerte Programmierung
Pfeil 4.3.1 Eine Ereigniskette
Pfeil 4.3.2 Endlose Ereignisketten
Pfeil 4.3.3 Textfelder koppeln
Pfeil 4.4 Mehrere Formulare
Pfeil 4.4.1 Allgemeine Code-Module
Pfeil 4.5 Datenfelder
Pfeil 4.5.1 Eindimensionale Datenfelder
Pfeil 4.5.2 Ein Feld durchsuchen
Pfeil 4.5.3 Weitere Feld-Operationen
Pfeil 4.5.4 Mehrdimensionale Datenfelder
Pfeil 4.5.5 Datenfelder initialisieren
Pfeil 4.5.6 Datenfelder sind dynamisch
Pfeil 4.5.7 Collections initialisieren
Pfeil 4.5.8 For-Each-Schleife
Pfeil 4.6 Datenstruktur ArrayList
Pfeil 4.7 Benutzerdefinierte Datentypen
Pfeil 4.8 Prozeduren und Funktionen
Pfeil 4.8.1 Prozeduren
Pfeil 4.8.2 Übergabe per Referenz
Pfeil 4.8.3 Funktionen
Pfeil 4.8.4 Optionale Argumente
Pfeil 4.8.5 Beliebig viele Argumente
Pfeil 4.8.6 Datenfelder als Argumente
Pfeil 4.8.7 Rekursiver Aufruf
Pfeil 4.8.8 Übungen zu Prozeduren und Funktionen
Pfeil 4.9 Konsolenanwendung
Pfeil 4.9.1 Anwendung erzeugen
Pfeil 4.9.2 Ein- und Ausgabe von Text
Pfeil 4.9.3 Eingabe einer Zahl
Pfeil 4.9.4 Erfolgreiche Eingabe einer Zahl
Pfeil 4.9.5 Ausgabe formatieren
Pfeil 4.9.6 Aufruf von der Kommandozeile


Galileo Computing - Zum Seitenanfang

4.3 Ereignisgesteuerte Programmierung Zur nächsten ÜberschriftZur vorigen Überschrift

In diesem Abschnitt wird das Verständnis für die ereignisgesteuerte Programmierung vertieft. In Windows-Programmen löst der Benutzer Ereignisse aus, die der Entwickler mit Ereignisprozeduren besetzt hat. In diesen Ereignisprozeduren wird der Programmcode zu diesem Ereignis ausgeführt.


Galileo Computing - Zum Seitenanfang

4.3.1 Eine Ereigniskette Zur nächsten ÜberschriftZur vorigen Überschrift

Ereignis simulieren

Sie haben auch die Möglichkeit, Ereignisse statt durch den Benutzer durch Programmcode auszulösen, indem die Ereignisprozedur mit ihrem Namen aufgerufen wird. Sie simulieren sozusagen die Tätigkeit des Benutzers. Dies kann die Programmentwicklung vereinfachen, weil dadurch die Folgen mehrerer Ereignisse zusammengefasst werden können, die aber auch nach wie vor einzeln ausgelöst werden können.

Das Programm im nachfolgenden Projekt Ereigniskette beinhaltet drei Buttons und zwei Labels. Bei Betätigung des Buttons Ereignis 1 erscheint ein Text in Label 1, bei Betätigung des Buttons Ereignis 2 erscheint ein Text in Label 2. Bei Betätigung des Buttons Ereignis 1+2 soll beides gleichzeitig passieren, siehe Abbildung 4.9. Ein weiterer Button soll zum Löschen der Label-Inhalte führen.

Abbildung 4.9 Zwei Ereignisse gleichzeitig auslösen

Der zugehörige Programmcode lautet:

Public Class Form1
    Private Sub cmdEreignis1_Click(
            ByVal sender As System.Object,
            ByVal e As System.EventArgs
            ) Handles cmdEreignis1.Click
        lblAnzeige1.Text = "Eins"
    End Sub

    Private Sub cmdEreignis2_Click(
            ByVal sender As System.Object,
            ByVal e As System.EventArgs
            ) Handles cmdEreignis2.Click
        lblAnzeige2.Text = "Zwei"
    End Sub

    Private Sub cmdEreignis3_Click(
            ByVal sender As System.Object,
            ByVal e As System.EventArgs
            ) Handles cmdEreignis3.Click
        cmdEreignis1_Click(sender, e)
        cmdEreignis2_Click(sender, e)
    End Sub

    Private Sub cmdLöschen_Click(...) Handles ...
        lblAnzeige1.Text = ""
        lblAnzeige2.Text = ""
    End Sub
End Class

Listing 4.3 Projekt »Ereigniskette«

Zur Erläuterung:

  • In der Prozedur cmdEreignis3_Click() werden die beiden Ereignisse cmdEreignis1_Click und cmdEreignis2_Click per Programmcode aufgerufen. Die beiden Parameter sender und e werden dabei vom Button Ereignis 1+2 übernommen. In beiden Labels wird anschließend Text angezeigt.

Galileo Computing - Zum Seitenanfang

4.3.2 Endlose Ereignisketten Zur nächsten ÜberschriftZur vorigen Überschrift

StackOverFlow

Sie können durch Aufrufe von Ereignisprozeduren allerdings auch (unbeabsichtigt) endlose Ereignisketten auslösen. Dabei stapeln sich die Prozedur-Aufrufe, und das Programm endet mit der Ausnahme StackOverFlowException. Solche endlosen Ereignisketten sind natürlich zu vermeiden. Nachfolgend sind zwei Beispiele angegeben.

Beispiel im Projekt ButtonEndlos: Zwei Buttons rufen sich gegenseitig auf:

Public Class Form1
    Private Sub cmdEreignis1_Click(...) Handles ...
        cmdEreignis2_Click(sender, e)
    End Sub

    Private Sub cmdEreignis2_Click(...) Handles ...
        cmdEreignis1_Click(sender, e)
    End Sub
End Class

Listing 4.4 Projekt »ButtonEndlos«

Zur Erläuterung:

  • Die Betätigung eines der Buttons simuliert die Betätigung des jeweils anderen Buttons.

Beispiel im Projekt TextfeldEndlos – zwei Textfelder ändern sich gegenseitig:

Public Class Form1
    Private Sub txtEingabe1_TextChanged(...
            ) Handles txtEingabe1.TextChanged
        txtEingabe2_TextChanged(sender, e)
    End Sub

    Private Sub txtEingabe2_TextChanged(...
            ) Handles txtEingabe2.TextChanged
        txtEingabe1_TextChanged(sender, e)
    End Sub
End Class

Listing 4.5 Projekt »TextfeldEndlos«

Zur Erläuterung:

  • Die Eingabe in eines der Textfelder simuliert die Änderung des Inhalts des jeweils anderen Textfelds. Dies simuliert wiederum die Änderung des Inhalts des ersten Textfelds usw.

Galileo Computing - Zum Seitenanfang

4.3.3 Textfelder koppeln topZur vorigen Überschrift

Eine nützliche Simulation eines Ereignisses ist dagegen das Kopieren von einem Textfeld in ein anderes Textfeld während der Eingabe. Sie können dieses Verhalten beobachten, wenn Sie in Visual Basic ein Projekt speichern.

Textfelder simultan

Im Dialog Projekt speichern ist das Textfeld Projektmappenname zunächst an das Textfeld Name gekoppelt. Geben Sie im Textfeld Name etwas ein, so wird der eingegebene Text parallel in das andere Textfeld übernommen. Dieses Verhalten ändert sich allerdings, sobald Sie den Cursor in das Textfeld Projektmappenname setzen: Nun sind die beiden Textfelder wieder entkoppelt.

Das beschriebene Verhalten soll mithilfe des folgenden Programms im Projekt TextfeldKoppeln vorgeführt werden.

Public Class Form1
    Dim Kopplung As Boolean

    Private Sub Form1_Load(...) Handles MyBase.Load
        txtName.SelectAll()
        Kopplung = True
    End Sub

    Private Sub txtName_TextChanged(...
            ) Handles txtName.TextChanged
        If Kopplung Then
            txtProjektmappenname.Text = txtName.Text
        End If
    End Sub

    Private Sub txtProjektmappenname_Click(...
            ) Handles txtProjektmappenname.Click
        Kopplung = False
    End Sub
End Class

Listing 4.6 Projekt »TextfeldKoppeln«

Zur Erläuterung:

  • Es wird eine klassenweit gültige Variable vom Typ Boolean deklariert. Diese Variable repräsentiert den Zustand der Kopplung. Sie wird beim Ereignis Form1_Load auf True gesetzt, da dies dem Anfangszustand entspricht: Die beiden Textfelder sind gekoppelt, siehe Abbildung 4.10.

Abbildung 4.10 Gekoppelte Textfelder

SelectAll()

  • Außerdem wird mit der Methode SelectAll() der gesamte voreingetragene Inhalt des Textfelds (das Wort Standardtext) selektiert, also markiert. Dadurch erreichen Sie, dass der Inhalt durch eine Eingabe des Benutzers unmittelbar überschrieben werden kann.
  • Ändert sich der Inhalt des Textfelds Name, so wird in der Ereignisprozedur txtName_TextChanged() geprüft, ob die beiden Textfelder noch gekoppelt sind. Ist dies der Fall, wird der Inhalt unmittelbar in das Textfeld Projektmappenname kopiert.
  • Klickt der Benutzer in das Textfeld Projektmappenname, so wird die Kopplung gelöst, siehe Abbildung 4.11. Die Variable Kopplung wird auf False gestellt.

Abbildung 4.11 Entkoppelte Textfelder



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