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

Inhaltsverzeichnis
1 Einführung
2 Grundlagen der Sprachsyntax
3 Klassendesign
4 Weitere Datentypen
5 Multithreading
6 Collections und LINQ
7 Eingabe und Ausgabe
8 Anwendungen: Struktur und Installation
9 Code erstellen und debuggen
10 Einige Basisklassen
11 Windows-Anwendungen erstellen
12 Die wichtigsten Steuerelemente
13 Tastatur- und Mausereignisse
14 MDI-Anwendungen
15 Grafiken mit GDI+
16 Drucken
17 Entwickeln von Steuerelementen
18 Programmiertechniken
19 WPF – Grundlagen
20 Layoutcontainer
21 WPF-Steuerelemente
22 Konzepte von WPF
23 Datenbankverbindung mit ADO.NET
24 Datenbankabfragen mit ADO.NET
25 DataAdapter
26 Offline mit DataSet
27 Datenbanken aktualisieren
28 Stark typisierte DataSets
A Anhang: Einige Übersichten
Stichwort
Jetzt Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Visual Basic 2008 von Andreas Kuehnel, Stephan Leibbrandt
Das umfassende Handbuch
Buch: Visual Basic 2008

Visual Basic 2008
3., aktualisierte und erweiterte Auflage, geb., mit DVD
1.323 S., 49,90 Euro
Rheinwerk Computing
ISBN 978-3-8362-1171-0
Pfeil 11 Windows-Anwendungen erstellen
Pfeil 11.1 Entwicklungsumgebung
Pfeil 11.2 Eine erste Windows-Anwendung
Pfeil 11.3 Das Codegerüst einer Windows-Anwendung
Pfeil 11.3.1 Einstellungen
Pfeil 11.3.2 Automatisch generierter Startcode
Pfeil 11.3.3 Nachrichtenschleife
Pfeil 11.3.4 Dateien *.vb und *.Designer.vb
Pfeil 11.4 Ereignisse grafischer Windows-Komponenten
Pfeil 11.4.1 Syntax und Nomenklatur
Pfeil 11.4.2 Ereignisse mit Ereignisdaten
Pfeil 11.4.3 Ereignisbehandlung in Visual Studio
Pfeil 11.4.4 Ereignisbehandlung mit OnEreignis-Methoden
Pfeil 11.5 Die Basisklassen einer Form
Pfeil 11.5.1 Control
Pfeil 11.5.2 ScrollableControl
Pfeil 11.5.3 ContainerControl
Pfeil 11.6 Eigenschaften einer Form
Pfeil 11.6.1 Rahmendarstellung
Pfeil 11.6.2 Formspezifisches Symbol
Pfeil 11.6.3 Schaltflächen der Titelleiste
Pfeil 11.6.4 Transparenz
Pfeil 11.6.5 Immer obenauf
Pfeil 11.6.6 Mauszeiger verändern
Pfeil 11.6.7 Farbe (Color)
Pfeil 11.6.8 Schriftart (Font)
Pfeil 11.6.9 Abmessungen einer Form
Pfeil 11.6.10 Position eines Fensters
Pfeil 11.6.11 Anzeigezustand eines Fensters
Pfeil 11.6.12 Arbeitsfläche des Fensters (Clientbereich)
Pfeil 11.6.13 Fokussierreihenfolge
Pfeil 11.6.14 Standardschaltflächen eines Fensters
Pfeil 11.6.15 Unterelemente (ControlsCollection)
Pfeil 11.6.16 Eigenschaften des Form-Objekts
Pfeil 11.7 Ereignisse einer Form
Pfeil 11.7.1 Erzeugen eines Fensters
Pfeil 11.7.2 Größenänderung einer Form
Pfeil 11.7.3 Schließen eines Fensters
Pfeil 11.8 Anwendungen mit mehreren Fenstern
Pfeil 11.8.1 Neue Formulare hinzufügen
Pfeil 11.8.2 Lebenszyklus von Formularen
Pfeil 11.8.3 Mehrere Fenster verwalten
Pfeil 11.8.4 Begrüßungsfenster (Splash)
Pfeil 11.9 Modale Dialogfenster
Pfeil 11.9.1 Layout eines Dialogfensters
Pfeil 11.9.2 Rückgabewert
Pfeil 11.9.3 Eine Form modal öffnen
Pfeil 11.10 Meldungsfenster mit MessageBox
Pfeil 11.10.1 Anzeige mit Show
Pfeil 11.10.2 Rückgabewert der Meldungsfenster
Pfeil 11.11 Die Klasse Application
Pfeil 11.11.1 Die Datei AssemblyInfo.vb
Pfeil 11.11.2 Wartende Ereignisse abrufen (DoEvents)
Pfeil 11.11.3 Eigenschaften und Methoden


Rheinwerk Computing - Zum Seitenanfang

11.7 Ereignisse einer Form Zur nächsten ÜberschriftZur vorigen Überschrift

Die meisten der von einem Form-Objekt veröffentlichten Ereignisse werden von der Basisklasse Control geerbt und sind somit auch Ereignisse aller anderen grafischen Komponenten, die Control als Basisklasse haben. An dieser Stelle eine lückenlose Liste aufzuführen, würde den Rahmen dieses Kapitels sprengen. Deshalb beschränke ich mich auf Ereignisse, die mit dem Laden und Entladen einer Form in Zusammenhang stehen.

Viele andere, hier noch nicht erwähnte Ereignisse werden durch die Interaktion mit der Maus oder durch die Tastatureingabe ausgelöst. Diese Ereignisse beschreibe ich in Kapitel 13, »Tastatur- und Mausereignisse«. Eine weitere große Gruppe bilden Ereignisse, deren Auslösung durch die Änderung einer Eigenschaft verursacht wird. Stellvertretend für diese Ereignisse seien an dieser Stelle BackColorChanged und VisibleChanged erwähnt. Auf diese Art Ereignisse gehe ich nicht näher ein.


Rheinwerk Computing - Zum Seitenanfang

11.7.1 Erzeugen eines Fensters Zur nächsten ÜberschriftZur vorigen Überschrift

Beim Laden einer Form werden nach dem Aufruf des Konstruktors mehrere Ereignisse in der folgenden Reihenfolge ausgelöst:

  • Move
  • Load
  • Layout
  • Activated
  • Paint

Die Ereignisreihenfolge ist für Sie als Entwickler nicht unwichtig, denn sie hat entscheidenden Einfluss darauf, in welchem Ereignis Sie Ihren Code schreiben. Initialisieren Sie beispielsweise Variablen im Load-Ereignis, stehen diese Werte in dem vorher ausgelösten Ereignis Move noch nicht zur Verfügung. Der Konstruktor einer Form, der in dieser Kette auch eine Rolle spielt, wird ausgeführt, bevor das erste Ereignis der Form ausgelöst wird. Das bedeutet für Sie, dass alle Komponenten der Form beim Auftreten des ersten Ereignisses bereits durch InitializeComponent initialisiert sind.

Es folgt nun eine Beschreibung der oben angeführten Ereignisse beim Laden einer Form:

  • Activated wird ausgelöst, sobald das Formular den Fokus erhält. Das ist der Fall, wenn die Form geladen und angezeigt wird oder wenn eine deaktivierte Form wieder aktiv wird.
  • Layout tritt jedes Mal ein, wenn ein Control neu positioniert werden muss. Zur Beschleunigung unterdrückt die Initialisierungsroutine dieses Ereignis durch den Aufruf der Methode SuspendLayout() und hebt mit ResumeLayout() die Sperre wieder auf.
  • Load wird nach dem Initialisieren der Form ausgelöst, jedoch noch bevor das Formular angezeigt wird. Damit ist das Ereignis geeignet, um weitere Ressourcen bereitzustellen, beispielsweise eine Datenbankverbindung oder eine geöffnete Datei.
  • Move tritt beim Verschieben einer Komponente ein.
  • Paint tritt immer dann ein, wenn das Fenster neu gezeichnet werden muss. Insbesondere diesem Ereignis werden wir noch besondere Aufmerksamkeit schenken, wenn wir uns mit der grafischen Programmierung beschäftigen.

Rheinwerk Computing - Zum Seitenanfang

11.7.2 Größenänderung einer Form Zur nächsten ÜberschriftZur vorigen Überschrift

Ereignisreihenfolgen spielen auch dann eine wichtige Rolle, wenn sich zur Laufzeit Bedingungen ändern. Verändern Sie zum Beispiel die Größe der Form oder maximieren Sie sie, kommt es zu den Ereignissen Layout, Resize, SizeChanged und Paint.


Rheinwerk Computing - Zum Seitenanfang

11.7.3 Schließen eines Fensters topZur vorigen Überschrift

So wie beim Laden und Anzeigen einer Form eine Ereigniskette durchlaufen wird, kommt es dazu auch beim Entladen einer Form:

  • FormClosing
  • FormClosed
  • Deactivate

Erst daran anschließend wird der Destruktor ausgeführt (durch den Garbage Collector).

Das wichtigste Ereignis ist FormClosing, denn es bietet über dem Parameter vom Typ FormClosingEventArgs und dessen Eigenschaft Cancel die Möglichkeit, den eingeleiteten Schließvorgang der Form im letzten Moment noch einmal abzubrechen. Wird Cancel=True gesetzt, wird die Form nicht geschlossen; der Standardwert False schließt sie endgültig.

Das folgende Codefragment zeigt die typische Implementierung dieses Ereignisses. Wird die Form geschlossen und FormClosing ausgelöst, wird ein Meldungsfenster angezeigt, das den Anwender zur Bestätigung des Schließvorgangs oder zum Abbruch des Schließens auffordert. Meldungsfenster behandeln wir in Abschnitt 11.10, »Meldungsfenster mit MessageBox«. Klickt der Anwender die Nein-Schaltfläche im Meldungsfenster, kommt es zum Abbruch des eingeleiteten Schließvorgangs.


'...\WinForm\Ereignisse\FormClosing.vb

Public Class FormClosing 
  Private Sub FormClosing_FormClosing( _ 
    sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing 
    Dim dr As DialogResult = MessageBox.Show( _ 
      "Wollen Sie die Anwendung beenden?", "Anwendungsmeldung", _ 
      MessageBoxButtons.YesNo, MessageBoxIcon.Question, _ 
      MessageBoxDefaultButton.Button2) 
    ' wird im Meldungsfenster 'Nein' geklickt, 
    ' wird der Schließvorgang abgebrochen 
    If (dr = DialogResult.No) Then e.Cancel = True 
  End Sub 
End Class

Ist der Ereignishandler von FormClosing vollständig abgearbeitet, ohne den Schließvorgang mit Cancel abzubrechen, wird FormClosed ausgelöst. Jetzt kann das Schließen der Form nicht mehr verhindert werden. Spätestens in diesem Ereignis sollten, falls erforderlich, alle Daten in einer Datei gespeichert und die von der Form beanspruchten Ressourcen wieder freigegeben werden.

Grund des Schließens

Der Parameter FormClosingEventArgs weist neben der Eigenschaft Cancel noch eine zweite typspezifische auf: CloseReason, die dem Ereignishandler die Ursache des Schließens mitteilt. Sie als Entwickler können damit im Bedarfsfall die auszuführenden Aktionen in Abhängigkeit von der Ursache steuern. CloseReason liefert eine Konstante der gleichnamigen Enumeration, deren Werte Sie Tabelle 11.12 entnehmen können.


Tabelle 11.12 Konstanten der Enumeration »CloseReason«

Konstante Beschreibung

ApplicationExitCall

Die Methode Application.Exit wurde aufgerufen.

FormOwnerClosing

Das Besitzerformular wurde geschlossen.

MdiFormClosing

Die übergeordnete MDI-Form wurde geschlossen.

None

Die Ursache für das Schließen ist unbekannt.

TaskManagerClosing

Die Anwendung wurde mit dem Task-Manager geschlossen.

UserClosing

Das Formular wurde über die Benutzeroberfläche geschlossen.

WindowsShutDown

Das Betriebssystem Windows wurde heruntergefahren.




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.







<< zurück
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Visual Basic 2008
Visual Basic 2008
Jetzt Buch bestellen


 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Rheinwerk-Shop: Visual Basic 2012






 Visual Basic 2012


Zum Rheinwerk-Shop: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Rheinwerk-Shop: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Rheinwerk-Shop: Professionell entwickeln mit Visual C# 2012






 Professionell
 entwickeln mit
 Visual C# 2012


Zum Rheinwerk-Shop: Windows Presentation Foundation






 Windows Presentation
 Foundation


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2009
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.

Nutzungsbestimmungen | Datenschutz | Impressum>

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern