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

Inhaltsverzeichnis
Über den Autor
Vorwort zur 4. Auflage
1 Allgemeine Einführung in .NET
2 Grundlagen der Sprache C#
3 Klassendesign und Vererbung
4 Weitere .NET-Datentypen
5 Weitere Möglichkeiten von C#
6 Projektmanagement und Visual Studio 2008
7 Fehlerbehandlung und Debugging
8 LINQ
9 Multithreading und asynchrone Methodenaufrufe
10 Arbeiten mit Dateien und Streams
11 Serialisierung
12 Einige wichtige .NET-Klassen
13 Grundlagen zum Erstellen einer Windows-Anwendung
14 Die wichtigsten Steuerelemente
15 Tastatur- und Mausereignisse
16 MDI-Anwendungen
17 Grafische Programmierung mit GDI+
18 Das Drucken (Printing)
19 Steuerelemente entwickeln
20 Programmiertechniken
21 WPF – die Grundlagen
22 Die Layoutcontainer
23 Die WPF-Controls
24 Konzepte von WPF
25 ADO.NET – die Verbindung zu einer Datenbank herstellen
26 Die Datenbankabfrage
27 Der SqlDataAdapter
28 Daten im lokalen Speicher – das DataSet
29 Eine Datenbank aktualisieren
30 Stark typisierte DataSets
31 Weitergabe von Anwendungen
Stichwort

Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Visual C# 2008 von Andreas Kuehnel
Das umfassende Handbuch
Buch: Visual C# 2008

Visual C# 2008
geb., mit DVD
1.366 S., 49,90 Euro
Rheinwerk Computing
ISBN 978-3-8362-1172-7
Pfeil 13 Grundlagen zum Erstellen einer Windows-Anwendung
Pfeil 13.1 Die Entwicklungsumgebung
Pfeil 13.2 Eine erste Windows-Anwendung
Pfeil 13.3 Das Codegerüst einer Windows-Anwendung
Pfeil 13.3.1 Die Datei »Program.cs«
Pfeil 13.3.2 Die Dateien »Form1.cs« und »Form1.Designer.cs«
Pfeil 13.4 Ereignisse grafischer Windows-Komponenten
Pfeil 13.4.1 Grundlegende Anmerkungen
Pfeil 13.4.2 Ereignisse mit Ereignisdaten
Pfeil 13.4.3 Ereignishandler mit dem Visual Studio 2008 bereitstellen
Pfeil 13.4.4 Ereignisbehandlung mit den »OnXxx«-Methoden
Pfeil 13.5 Die Basisklassen einer Form
Pfeil 13.5.1 Die Klasse »Control«
Pfeil 13.5.2 Die Klasse »ScrollableControl«
Pfeil 13.5.3 Die Klasse »ContainerControl«
Pfeil 13.6 Die Eigenschaften einer Form
Pfeil 13.6.1 Den Rahmen einer Form festlegen
Pfeil 13.6.2 Formspezifisches Symbol festlegen
Pfeil 13.6.3 Die Schaltflächen in der Titelleiste
Pfeil 13.6.4 Spielereien mit »Opacity« und »TransparencyKey«
Pfeil 13.6.5 Fenster, die nicht verdeckt werden können
Pfeil 13.6.6 Den Mauszeiger verändern
Pfeil 13.6.7 Farbeinstellungen mit dem Typ »Color«
Pfeil 13.6.8 Schriftart mit dem Typ »Font«
Pfeil 13.6.9 Die Abmessungen einer Form festlegen
Pfeil 13.6.10 Die Position eines Fensters
Pfeil 13.6.11 Der Anzeigezustand eines Fensters nach dem Öffnen
Pfeil 13.6.12 Die Arbeitsfläche des Fensters (der Clientbereich einer Form)
Pfeil 13.6.13 Die Fokussierreihenfolge
Pfeil 13.6.14 Die Standardschaltflächen eines Fensters
Pfeil 13.6.15 Die Auflistung »ControlsCollection«
Pfeil 13.6.16 Zusammenfassung der Eigenschaften des Form-Objekts
Pfeil 13.7 Ereignisse einer Form
Pfeil 13.7.1 Ereignisreihenfolge beim Erzeigen einer Form
Pfeil 13.7.2 Größenänderung einer Form
Pfeil 13.7.3 Ereignisse beim Schließen eines Fensters
Pfeil 13.8 Anwendungen mit mehreren Fenstern
Pfeil 13.8.1 Neue Forms hinzufügen
Pfeil 13.8.2 Formulare laden, anzeigen, verstecken und schließen
Pfeil 13.8.3 Mehrere Fenster verwalten
Pfeil 13.8.4 Splash-Fenster
Pfeil 13.9 Modale Dialogfenster
Pfeil 13.9.1 Layout eines Dialogfensters
Pfeil 13.9.2 Die Eigenschaft »DialogResult«
Pfeil 13.9.3 Eine Form modal öffnen
Pfeil 13.10 Meldungsfenster mit »MessageBox«
Pfeil 13.10.1 Die Methode »MessageBox.Show«
Pfeil 13.10.2 Der Rückgabewert der Meldungsfenster
Pfeil 13.11 Die Klasse »Application«
Pfeil 13.11.1 Die Datei »AssemblyInfo.cs«
Pfeil 13.11.2 Mit »Application.DoEvents« wartende Ereignisse abrufen
Pfeil 13.11.3 Zusammenfassung der Eigenschaften und Methoden


Galileo Computing - Zum Seitenanfang

13.10 Meldungsfenster mit »MessageBox« Zur nächsten ÜberschriftZur vorigen Überschrift

Sicherlich sind Ihnen modale Dialoge wie der aus Abbildung 13.10 bekannt.

Abbildung 13.10 Ein typisches modales Dialogfenster

Weil modale Dialogfenster sehr häufig zur einfachen Interaktion mit dem Anwender oder auch nur zur Bereitstellung von Informationen in Applikationen eingesetzt werden, ist im Namespace System.Windows.Forms eine Klasse vordefiniert, mit der die meisten Anforderungen erfüllt werden können. Es handelt sich um MessageBox. Der abgebildete Dialog beruht auf der folgenden Anweisung:

MessageBox.Show("Wollen Sie die Anwendung beenden?", 
                "Anwendungsmeldung", 
                MessageBoxButtons.YesNo, 
                MessageBoxIcon.Question, 
                MessageBoxDefaultButton.Button2);

Man braucht eigentlich keine erklärenden Worte zu verlieren, denn der Code beschreibt sich nahezu von selbst: Im ersten Argument wird der Meldungstext übergeben, im zweiten die Beschriftung der Titelleiste, im dritten die anzuzeigenden Schaltflächen. Das vierte Argument beschreibt das Symbol im Clientbereich des Meldungsfensters, und das fünfte und letzte Argument gibt vor, welche Schaltfläche nach dem Start der Anzeige fokussiert werden soll.

Der Programmcode, den man benötigt, um ein Meldungsfenster anzuzeigen, ist bedeutend kürzer und einfacher als der eines benutzerdefinierten Dialogs. Dennoch sind modalen Dialogen, die auf der Klasse MessageBox basieren, Grenzen gesetzt, denn der Anwender wird nur mit Hinweisen und Informationen versorgt, auf die er durch das Anklicken einer Schaltfläche reagiert, um damit den weiteren Programmablauf zu beeinflussen.


Galileo Computing - Zum Seitenanfang

13.10.1 Die Methode »MessageBox.Show« Zur nächsten ÜberschriftZur vorigen Überschrift

MessageBox verfügt nur über eine typspezifische Methode: Es ist die vielfach überladene statische Methode Show, die mit 20 Überladungen aufwartet. Die einfachste ist die, die nur die Zeichenfolge des Meldungstextes entgegennimmt:

MessageBox.Show("Visual C# macht Spass");

Ein solches Meldungsfenster verfügt nur über eine OK-Schaltfläche. Klickt der Anwender auf diese, wird das Meldungsfenster geschlossen.

Optisch wirkt eine leere Titelleiste stümperhaft, deshalb werden Sie bestimmt in allen Fällen dieser auch eine Zeichenfolge übergeben wollen. Üblicherweise verwendet man dazu den Namen der Anwendung, den man auch aus der statischen Eigenschaft ProductName der Klasse Application beziehen kann:

MessageBox.Show("Visual C# macht Spass", Application.ProductName);

In einem dritten Argument können Sie die im Meldungsfenster angezeigten Schaltflächen festlegen. Dazu übergeben Sie eine der in der Enumeration MessageBoxButtons vordefinierten Konstanten (siehe Tabelle 13.13).


Tabelle 13.13 Konstanten der Enumeration »MessageBoxButtons«

Member Beschreibung

AbortRetryIgnore

Das Meldungsfeld enthält die Schaltflächen Beenden, Wiederholen und Ignorieren.

OK

Das Meldungsfeld enthält die OK-Schaltfläche.

OKCancel

Das Meldungsfeld enthält die Schaltflächen OK und Abbrechen.

RetryCancel

Das Meldungsfeld enthält die Schaltflächen Wiederholen und Abbrechen.

YesNo

Das Meldungsfeld enthält die Schaltflächen Ja und Nein.

YesNoCancel

Das Meldungsfeld enthält die Schaltflächen Ja, Nein und Abbrechen.


Wenn Sie im linken Bereich des Meldungsfensters ein Symbol anzeigen lassen wollen, haben Sie tatsächlich nur vier verschiedene Alternativen, obwohl in der Liste der MessageBoxIcon-Aufzählung neun aufgeführt sind.


Tabelle 13.14 Konstanten der Enumeration »MessageBoxIcon«

Member Beschreibung

None

Das Meldungsfenster enthält kein Symbol.

Hand, Stop, Error

Das Meldungsfeld enthält ein Symbol, das aus einem weißen X in einem Kreis mit rotem Hintergrund besteht.

Question

Das Meldungsfeld enthält ein Symbol, das aus einem Fragezeichen in einem Kreis besteht.

Exclamation, Warning

Das Meldungsfeld enthält ein Symbol, das aus einem Ausrufezeichen in einem Dreieck mit gelbem Hintergrund besteht.

Asterisk, Information

Das Meldungsfeld enthält ein Symbol, das aus dem Kleinbuchstaben »i« in einem Kreis besteht.


Erzeugen Sie ein Meldungsfenster mit mehreren Schaltflächen, kommt der Wahl der vorfokussierten Schaltfläche eine besondere Bedeutung zu. Nehmen wir beispielsweise das folgende Meldungsfenster:

MessageBox.Show("Wollen Sie die Anwendung beenden?", 
                Application.ProductName, 
                MessageBoxButtons.YesNo, 
                MessageBoxIcon.Question);

Standardmäßig ist die linke Schaltfläche (OK) fokussiert und reagiert nicht nur auf einen Mausklick, sondern auch auf die Eingabe- und Leertaste. Es wäre fatal, wenn in einem Formular viele Einträge vorgenommen worden sind, der Anwender versehentlich auf die Schließen-Schaltfläche der Form klickt und dann in seiner Hektik danach noch zu schnell auf die Enter -Taste drückt – seine Arbeit wäre verloren. Sie als Entwickler sollten diese Situation vermeiden. Dazu fokussieren Sie einfach die Schaltfläche im Meldungsfenster, die nicht das Schließen der Form oder gar der Anwendung zur Folge hat. Der auf die Festlegung des Icons folgende Parameter der Show-Methode vom Typ MessageBoxDefaultButton eröffnet Ihnen diese Option.

Weitere optionale Parameter ermöglichen über die aufgeführten Fähigkeiten hinaus die Anzeige einer Hilfe-Schaltfläche und die Verknüpfung zu einer passenden Hilfedatei.


Tabelle 13.15 Konstanten der Enumeration »MessageBoxDefaultButton«

Member Beschreibung

Button1

Die erste Schaltfläche im Meldungsfenster ist die vorfokussierte Schaltfläche.

Button2

Die zweite Schaltfläche von links im Meldungsfenster ist die vorfokussierte Schaltfläche.

Button3

Die rechte Schaltfläche im Meldungsfenster ist die vorfokussierte Schaltfläche.



Galileo Computing - Zum Seitenanfang

13.10.2 Der Rückgabewert der Meldungsfenster topZur vorigen Überschrift

Zeigt das Meldungsfenster nur einen OK-Button, erübrigt sich die Auswertung dieser Schaltfläche. Werden mehrere Schaltflächen angeboten, müssen Sie auswerten, welche der Anwender angeklickt hat. Die Information, welche Schaltfläche des Meldungsfensters zum Schließen geführt hat, bezieht man über den Rückgabewert der Methode MessageBox.Show, der vom Typ DialogResult ist. Die Mitglieder dieser Enumeration sind schon in Tabelle 13.12 vorgestellt worden.

Im folgenden Ereignishandler einer Schaltfläche wird ein Meldungsfenster angezeigt, das den Anwender um die Bestätigung bittet, ob er die Anwendung schließen möchte oder nicht. Der Code reagiert in Abhängigkeit von der im Meldungsfenster gewählten Schaltfläche.

private void btnSchliessen_Click(object sender, EventArgs e) { 
  string strMeldung = "Wollen Sie die Anwendung beenden?"; 
  DialogResult result = MessageBox.Show(strMeldung, 
                        Application.ProductName, 
                         MessageBoxButtons.OKCancel, 
                         MessageBoxIcon.Question, 
                         MessageBoxDefaultButton.Button2);

  if(result == DialogResult.OK) 
    Application.Exit(); 
  else 
    // Reaktion auf 'Abbrechen', falls notwendig 
}

Die Abbrechen-Schaltfläche wird vorfokussiert, um ein versehentliches Schließen der Anwendung zu vermeiden. In einer if-Anweisung wird der Rückgabewert überprüft. Hat der Anwender OK angeklickt, wird die Anwendung unweigerlich geschlossen, ansonsten kann eine andere Reaktion erfolgen. In den meisten Fällen ist bei der Rückgabe DialogResult.Cancel kein Code erforderlich.

Alternativ könnte der gesamte if-Block auch durch switch-case ersetzt werden:

switch(result) { 
  case DialogResult.OK: 
    Application.Exit(); 
    break; 
 
  case DialogResult.Cancel: 
    // Reaktion auf 'Abbrechen', falls notwendig 
}


Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
<< zurück
  Zum Katalog
Zum Katalog: Visual C# 2008
Visual C# 2008
Jetzt bestellen


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

 Buchtipps
Zum Katalog: Visual C# 2012






 Visual C# 2012


Zum Katalog: Professionell entwickeln mit Visual C# 2012






 Professionell
 entwickeln mit
 Visual C# 2012


Zum Katalog: Windows Presentation Foundation






 Windows Presentation
 Foundation


Zum Katalog: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Katalog: C++ Handbuch






 C++ Handbuch


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




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


Nutzungsbestimmungen | Datenschutz | Impressum

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