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 4 Erweiterte Grundlagen
  Pfeil 4.1 Fokus, Sichtbarkeit, Aktivierungszustand
    Pfeil 4.1.1 Ereignis GotFocus
    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 EreigniskeEreigniskettette
    Pfeil 4.3.2 Endlose Ereignisketten
    Pfeil 4.3.3 Textfelder koppeln
  Pfeil 4.4 Datenfelder
    Pfeil 4.4.1 Eindimensionale statische Datenfelder
    Pfeil 4.4.2 Ein Feld durchsuchen
    Pfeil 4.4.3 Weitere Feld-Operationen
    Pfeil 4.4.4 Mehrdimensionale statische Datenfelder
    Pfeil 4.4.5 Datenfelder initialisieren
    Pfeil 4.4.6 Datenfelder sind dynamisch
  Pfeil 4.5 Strukturen
  Pfeil 4.6 Prozeduren und Funktionen
    Pfeil 4.6.1 Prozeduren
    Pfeil 4.6.2 Übergabe per Referenz
    Pfeil 4.6.3 Funktionen
    Pfeil 4.6.4 Optionale Argumente
    Pfeil 4.6.5 Beliebig viele Argumente
    Pfeil 4.6.6 Datenfelder als Argumente
    Pfeil 4.6.7 Rekursiver Aufruf
    Pfeil 4.6.8 Übungen zu Prozeduren und Funktionen


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 Visual Basic-Programmen löst der Benutzer Ereignisse aus, die der Entwickler mit Ereignisprozeduren besetzt hat. In diesen Ereignisprozeduren wird der entsprechende Code zu diesem Ereignis ausgeführt. Der Benutzer bestimmt den Ablauf des Programms in höherem Maße, als dies bei der klassischen Programmierung der Fall war.


Galileo Computing - Zum Seitenanfang

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

Ereignis simulieren

Es gibt auch die Möglichkeit, Ereignisse statt durch den Benutzer durch Programmcode auszulösen, indem die Ereignisprozedur mit ihrem Namen aufgerufen wird. Man »simuliert« 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 p0405 im nachfolgenden Beispiel beinhaltet drei Buttons und zwei Label. Bei Betätigung des Buttons 1 erscheint ein Text in Label 1, bei Betätigung des Buttons 2 erscheint ein Text in Label 2. Bei Betätigung des Buttons 3 soll beides gleichzeitig passieren. Ein weiterer Button soll zum Löschen der Label-Inhalte führen.

Abbildung 4.7  Zwei Ereignisse gleichzeitig auslösen

Der zugehörige Programmcode lautet:

Public Class frm0405 
   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(ByVal sender As _ 
         System.Object, ByVal e As System.EventArgs) _ 
         Handles cmdLöschen.Click 
      lblAnzeige1.Text = "" 
      lblAnzeige2.Text = "" 
   End Sub 
End Class

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 3 ü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

Man kann 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 p0406: Zwei Buttons rufen sich gegenseitig auf:

Public Class frm0406 
   Private Sub cmdEreignis1_Click(ByVal sender As _ 
         System.Object, ByVal e As System.EventArgs) _ 
         Handles cmdEreignis1.Click 
      cmdEreignis2_click(sender, e) 
   End Sub 
 
   Private Sub cmdEreignis2_Click(ByVal sender As _ 
         System.Object, ByVal e As System.EventArgs) _ 
         Handles cmdEreignis2.Click 
      cmdEreignis1_Click(sender, e) 
   End Sub 
End Class

Zur Erläuterung:

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

Beispiel p0407: Zwei Textfelder ändern sich gegenseitig:

Public Class frm0407 
   Private Sub txtEingabe1_TextChanged(ByVal sender _ 
         As System.Object, ByVal e As System.EventArgs) _ 
         Handles txtEingabe1.TextChanged 
      txtEingabe2_TextChanged(sender, e) 
   End Sub 
 
   Private Sub txtEingabe2_TextChanged(ByVal sender _ 
         As System.Object, ByVal e As System.EventArgs) _ 
         Handles txtEingabe2.TextChanged 
      txtEingabe1_TextChanged(sender, e) 
   End Sub 
End Class

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 ist in diesem Zusammenhang das Kopieren von einem Textfeld in ein anderes Textfeld während der Eingabe. Man kann dieses Verhalten beobachten, wenn man in Visual Basic ein Projekt speichert.

Textfelder simultan

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

Das beschriebene Verhalten soll mithilfe des folgenden Programms p0408 vorgeführt werden:

Public Class frm0408 
   Dim Kopplung As Boolean 
 
   Private Sub frm0408_Load( ... ) Handles MyBase.Load 
      txtName.SelectAll() 
      Kopplung = True 
   End Sub 
 
   Private Sub txtName_TextChanged( ... ) ... 
      If Kopplung Then 
         txtProjektmappenname.Text = txtName.Text 
      End If 
   End Sub 
 
   Private Sub txtProjektmappenname_Click( ... ) _ 
         Handles ... 
      Kopplung = False 
   End Sub 
End Class

Abbildung 4.8  Gekoppelte Textfelder

Zur Erläuterung:

  • Es wird eine modulweite Variable vom Typ Boolean deklariert. Diese Variable repräsentiert den Zustand der Kopplung. Sie wird beim Ereignis Formular_Load auf True gesetzt, da dies dem Anfangszustand entspricht: Die beiden Textfelder sind gekoppelt.

    SelectAll

  • Außerdem wird mit der Methode SelectAll() der gesamte voreingetragene Inhalt des Textfelds (das Wort »Standard«) selektiert, also markiert. Dadurch erreicht man, 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. Die Variable Kopplung wird auf False gestellt.

Abbildung 4.9  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 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