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.2 Eine erste Windows-Anwendung topZur vorigen Überschrift

Ein Fenster ist die Schnittstelle zwischen dem Anwender und der Programmlogik. Es ist gleichzeitig Container für die Steuerelemente (Controls), die die Anwendungslogik in visualisierter Form darstellen. Wie das Erstellen einer Windows-Anwendung grundsätzlich abläuft, möchte ich Ihnen an einem ersten Beispiel zeigen. Dazu wird die Form durch zwei Textboxen und zwei Schaltflächen erweitert (siehe Abbildung 13.2). Die Funktionsweise zur Laufzeit sei wie folgt: Nach dem Klicken auf die mit Kopieren beschriftete Schaltfläche soll der Inhalt der oberen Textbox auch in der unteren angezeigt werden. Die Schaltfläche Beenden schließt die Anwendung.

Abbildung 13.2 Fensterlayout der ersten Windows-Anwendung

Die vier Steuerelemente müssen wir der anfangs noch leeren Form hinzufügen und auf ihr ausrichten. Sie können das auf zwei Weisen erreichen:

  • In der Toolbox wird das gewünschte Steuerelement markiert. Fährt man danach mit der Maus über den Designer des Formulars, ändert der Mauszeiger seine Darstellung in ein Kreuz. Durch Drücken und Festhalten der linken Maustaste wird entweder die linke obere oder die rechte untere Position des Steuerelements festgelegt. Wenn Sie die Maustaste weiter gedrückt halten, können Sie das Steuerelement bis zur gewünschten Darstellungsgröße aufziehen.
  • Die zweite Möglichkeit wäre der einfache Doppelklick auf das Steuerelement in der Toolbox. Daraufhin wird eine Instanz des Steuerelements in der linken oberen Ecke der Arbeitsfläche der Form angezeigt. Das Steuerelement wird dabei von der Entwicklungsumgebung in einer Standardabmessung gezeichnet.

Steuerelemente positionieren und ausrichten

Um das Steuerelement (Control) korrekt zu positionieren und auszurichten, müssen Sie das entsprechende Steuerelement in der Form auswählen. Sie können es dann an den Markierungspunkten greifen und wunschgemäß anpassen. Die Markierungspunkte verwandeln sich in Pfeile, die anzeigen, in welcher Richtung die Größenänderung erfolgen wird. Wenn Sie mit dem Mauszeiger auf die Fläche des Controls fahren, symbolisiert das Kreuz mit den Pfeilspitzen, dass durch Drücken und Festhalten der linken Maustaste das gesamte Element ohne Veränderung seiner Größe verschoben werden kann.

Wollen Sie mehrere Steuerelemente relativ zueinander ausrichten, stehen Ihnen mehrere Möglichkeiten zur Verfügung:

  • Sie können die Steuerelemente an den im Forms-Designer der Entwicklungsumgebung angezeigten Rasterpunkten ausrichten.
  • Sie können die Steuerelemente mithilfe von Bezugslinien positionieren, die während des Verschiebens angezeigt werden, wenn zwei benachbarte Steuerelemente horizontal oder vertikal identisch ausgerichtet sind.
  • Im Hauptmenü des Visual Studio 2008 bietet der Menüpunkt Format mehrere Möglichkeiten, mehrere gleichzeitig markierte Steuerelemente größenmäßig anzupassen, die Zwischenabstände anzugleichen oder nach verschiedenen Kriterien zu positionieren.

Um die beiden erstgenannten Punkte einzustellen, öffnen Sie den Dialog Optionen des Menüs Extras. Im linken Teilbereich wählen Sie den Knoten Windows Forms Designer aus. Anschließend können Sie im rechten Teil unter LayoutMode das von Ihnen bevorzugte Verfahren einstellen (SnapTpGrid oder SnapLines). Darüber hinaus lassen sich hier unter anderem auch die Rasterpunktabstände und die Anzeige der Rasterpunkte im Forms-Designer beeinflussen (siehe Abbildung 13.3).

Abbildung 13.3 Einstellen des Positionierungsverhaltens des Forms-Designers

Bezeichnung der Steuerelemente

Jedes Steuerelement, das aus der Toolbox in die Form gezogen wird, ist die Instanz einer Klasse und hat damit einen es kennzeichnenden Bezeichner, der durch die Eigenschaft Name beschrieben wird. Obwohl das System automatisch einen Namen vergibt, der am Typ des Steuerelements orientiert ist, sollten Sie sich angewöhnen, einen beschreibenden Namen festzulegen. Da Sie im Programmcode einer Windows-Anwendung immer wieder Eigenschaften und Methoden der Steuerelemente abrufen oder ändern, vermeiden Sie durch einen beschreibenden Namen Zuordnungsprobleme, und der Code wird besser lesbar.

Den Bezeichner ändern Sie am einfachsten, indem Sie das entsprechende Steuerelement im Forms-Designer markieren und danach im Eigenschaftsfenster, das immer die Eigenschaften des aktuell markierten Steuerelements anzeigt, unter Name den neuen Bezeichner eintragen.

Wir sollten für die Steuerelemente unserer Form aus Abbildung 13.2 die folgenden Namen im Eigenschaftsfenster festlegen:


Tabelle 13.1 Namensvergabe für Steuerelemente

Typ Ursprünglicher Name Eintrag im Eigenschaftsfenster

TextBox

textbox1

txtOriginal

TextBox

textbox2

txtKopie

Button

button1

btnKopieren

Button

button2

btnBeenden


Beachten Sie, dass für die Bezeichner ein Präfix gewählt worden ist, aus dem der Typ des Steuerelements hervorgeht. Hier wurde »txt« als Präfix für die Textboxen gewählt und »btn« für die Schaltflächen (die vom Typ Button sind).

Wenn Sie dem Beispiel bis hierher gefolgt sind, werden Sie feststellen, dass die Beschriftung Ihrer Schaltflächen nicht mit der in der Abbildung übereinstimmt. Natürlich ist auch für die Beschriftung eine Eigenschaft verantwortlich – die Eigenschaft Text, die wir im Eigenschaftsfenster passend festlegen. Formulare haben auch eine Eigenschaft Text. Diese beschreibt den Text in der Titelleiste. In Abbildung 13.2 ist »Meine erste WinAnwendung« eingetragen.

Wir könnten noch weitere Änderungen am Layout oder an den Verhaltensweisen der beteiligten Komponenten vornehmen, beispielsweise um zu verhindern, dass der Anwender zur Laufzeit die Größe der Form ändert. Für den Moment soll es an dieser Stelle aber ausreichen.

Hinweise zum Eigenschaftsfenster

Im Eigenschaftsfenster lassen sich sehr schnell die Eigenschaften der Komponenten festlegen. Um es möglichst effektiv einzusetzen, sollten Sie sich mit der Bedienung vertraut machen:

  • Die Liste der Eigenschaften kann sowohl alphabetisch als auch nach Kategorien sortiert angezeigt werden. Die Umschaltung erfolgt mit den beiden in der linken Ecke positionierten Schaltflächen (siehe Abbildung 13.4).

Abbildung 13.4 Symbolleiste des Eigenschaftsfensters

  • Steuerelemente haben vordefinierte Eigenschaftswerte. Abweichungen von den Standardwerten sind in Fettschrift dargestellt.
  • Benötigen Sie die Hilfe zu einer Eigenschaft, markieren Sie diese im Eigenschaftsfenster und drücken die F1 -Taste.
  • Beabsichtigen Sie, einer bestimmten, gemeinsamen Eigenschaft mehrerer Steuerelemente den gleichen Wert zuzuweisen (z. B. um bei allen Schaltflächen in einer Form dieselbe Höhe sicherzustellen), kann diese Eigenschaft für alle in Frage kommenden Steuerelemente durch einen einzigen Eintrag im Eigenschaftsfenster verändert werden. Dazu müssen Sie alle betroffenen Steuerelemente im Designer gleichzeitig markieren, indem Sie mit der Maus einen Rahmen um die entsprechenden Steuerelemente ziehen. Sie können auch zuerst ein Steuerelement markieren und danach der Reihe nach die anderen, während Sie die Strg -Taste gedrückt halten.
  • Eine Eigenschaftsänderung kann zurückgesetzt werden, wenn die entsprechende Eigenschaft markiert ist und im dazugehörigen Kontextmenü Zurücksetzen gewählt wird.

Im unteren Bereich des Eigenschaftsfensters sehen Sie einen Bereich, in dem die markierte Eigenschaft mit wenigen Worten erläutert wird. Für eine erste Erklärung reicht der Text meist aus. Wenn Sie eine genauere benötigen, müssen Sie in die Dokumentation schauen. Sie können diesen Bereich über das Kontextmenü ausblenden, wenn Sie darauf keinen Wert legen.

Streng genommen trägt das Eigenschaftsfenster seinen Namen zu Unrecht, da in der Symbolleiste von der Ansicht der Liste aller Eigenschaften auch auf die Liste der Ereignisse umgeschaltet werden kann, die zu dem ausgewählten Komponententyp gehören. Die Ereignisliste kann ebenfalls sowohl alphabetisch als auch nach Gruppen geordnet angezeigt werden.

Der Code einer Windows-Anwendung

Windows-Anwendungen sind ereignisgesteuert. Jedes Peripheriegerät, sei es der Drucker, die Maus oder die Tastatur, kann Ereignisse auslösen. Auch Steuerelemente gliedern sich in das Ereignismodell ein. Klickt der Benutzer zum Beispiel zur Laufzeit des Programms auf eine Schaltfläche, wird das Ereignis Click ausgelöst. Wenn für das Ereignis ein Ereignishandler registriert ist, wird dieser ausgeführt. Sie müssen nicht jedes Ereignis einer Windows-Komponente behandeln, sondern nur die, die zur Interaktion mit dem Benutzer benötigt werden.

Am einfachsten können Sie einen Ereignishandler implementieren, wenn Sie im Designer auf ein Steuerelement doppelklicken. Daraufhin öffnet sich der Codeeditor der Form, und der Eingabecursor befindet sich in einer Methode, die mit einem bestimmten Ereignis verbunden ist. Dabei handelt es sich um das Standardereignis des betreffenden Steuerelements. Bei einem Button handelt es sich um Click, bei einer Textbox um das Ereignis TextChanged und bei einer Form um Load.

Ein Doppelklick auf den Kopieren-Button (siehe Abbildung 13.2) erzeugt die folgende Methodensignatur:

private void btnKopieren_Click(object sender, EventArgs e) 
{ 
}

Der Name der Methode lautet btnKopieren_Click und setzt sich aus dem Namen des Steuerelements und des Ereignisbezeichners zusammen. Beide sind durch einen Unterstrich voneinander getrennt. Der ereignisspezifischen Parameterliste wollen wir an dieser Stelle noch keine Beachtung schenken.

Im Anweisungsblock werden die Anweisungen codiert, die ausgeführt werden, wenn der Anwender zur Laufzeit auf die Schaltfläche mit der Bezeichnung btnKopieren klickt. Da wir uns zum Ziel gesetzt haben, den Inhalt der Textbox txtOriginal in die Textbox txtKopie zu schreiben, ist folgende Anweisung notwendig:

private void btnKopieren_Click(object sender, EventArgs e) { 
  txtKopie.Text = txtOriginal.Text; 
}

Die Eigenschaft Text einer TextBox beschreibt den angezeigten Textboxinhalt. Daher wird der Inhalt der Eigenschaft Text des Objekts txtOriginal ausgewertet und der Eigenschaft Text des Objekts txtKopie zugewiesen.

Analog beschaffen wir uns auch den Ereignishandler des Click-Ereignisses der Schaltfläche btnBeenden und schreiben den folgenden Code:

private void btnBeenden_Click(object sender, EventArgs e) { 
  Application.Exit(); 
}

Die Klasse Application stellt Methoden und Eigenschaften für die Verwaltung einer Anwendung zur Verfügung. Eine von diesen Methoden ist die parameterlose, statische Methode Exit, um die laufende Anwendung zu schließen.

Im Folgenden sehen Sie den zusammengefassten Code. Beachten Sie, dass sich dieser in der Sourcecode-Datei Form1.cs befindet.

// --------------------------------------------------------------
// Beispiel: ...\Kapitel 13\FirstWinFormApplication
// ------------------------------------------------------------------
public partial class Form1 : Form {

  public Form1() { 
    InitializeComponent(); 
  }

  private void btnKopieren_Click(object sender, EventArgs e) { 
    txtKopie.Text = txtOriginal.Text; 
  }

  private void btnBeenden_Click(object sender, EventArgs e) { 
    Application.Exit(); 
  } 
}


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.


[Rheinwerk Computing]

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