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 12 Die wichtigsten Steuerelemente
Pfeil 12.1 Gemeinsamkeiten
Pfeil 12.1.1 Größe und Position
Pfeil 12.1.2 Sichtbarkeit und Aktivierungszustand
Pfeil 12.1.3 Beschriftung
Pfeil 12.1.4 Farben
Pfeil 12.1.5 Grafische Darstellung
Pfeil 12.1.6 Zugriffsrechte
Pfeil 12.1.7 Zusatzinformationen speichern
Pfeil 12.1.8 Position bei Größenänderung der Form
Pfeil 12.1.9 Die Größe mit der Form skalieren
Pfeil 12.1.10 Kindelemente
Pfeil 12.1.11 Steuerelemente fokussieren
Pfeil 12.1.12 Maus- und Tastaturereignisse
Pfeil 12.2 Schaltflächen (Button)
Pfeil 12.2.1 Rahmendarstellung
Pfeil 12.2.2 Beschriftung und Grafiken
Pfeil 12.3 Auswahlkästchen (CheckBox)
Pfeil 12.3.1 Eigenschaften
Pfeil 12.3.2 Drei Zustände
Pfeil 12.4 Gruppierung (GroupBox)
Pfeil 12.5 Optionsschaltflächen (RadioButton)
Pfeil 12.5.1 Gruppierung
Pfeil 12.5.2 Eigenschaften
Pfeil 12.5.3 Zustandswechsel programmieren
Pfeil 12.6 Texteingabefelder (TextBox)
Pfeil 12.6.1 Einzeilige Eingabefelder
Pfeil 12.6.2 Mehrzeilige Eingabefelder
Pfeil 12.7 Beschriftungen (Label)
Pfeil 12.8 Popuptextfenster (ToolTip)
Pfeil 12.8.1 Definition von Hinweistexten
Pfeil 12.8.2 Anzeigedauer der Texte
Pfeil 12.8.3 Weitere Eigenschaften
Pfeil 12.9 Auswahllisten (ListBox)
Pfeil 12.9.1 Daten einer ListBox
Pfeil 12.9.2 Darstellung einer Listbox
Pfeil 12.9.3 Einfach- und Mehrfachauswahl
Pfeil 12.9.4 Listboxen mit Einfachauswahl
Pfeil 12.9.5 Listboxen mit Mehrfachauswahl
Pfeil 12.9.6 Benutzerdefinierte Sortierung
Pfeil 12.9.7 Auswahlliste mit Datenquelle (DataSource)
Pfeil 12.10 Markierte Auswahllisten (CheckedListBox)
Pfeil 12.11 Kombinationslistenfelder (ComboBox)
Pfeil 12.11.1 Ereignisse
Pfeil 12.11.2 Autovervollständigung
Pfeil 12.12 Standarddialoge
Pfeil 12.12.1 Datei zum Öffnen wählen (OpenFileDialog)
Pfeil 12.12.2 Datei zum Speichern wählen (SaveFileDialog)
Pfeil 12.12.3 Ordner selektieren (FolderBrowserDialog)
Pfeil 12.12.4 Farbe bekennen (ColorDialog)
Pfeil 12.12.5 Schriftart wählen (FontDialog)
Pfeil 12.13 Menüs, Symbol- und Statusleisten
Pfeil 12.13.1 Menüsammlung (ToolStripContainer)
Pfeil 12.13.2 Menüdefinition
Pfeil 12.13.3 Eigenschaften von Menüs
Pfeil 12.13.4 Kontextmenüs
Pfeil 12.13.5 Symbolleisten
Pfeil 12.13.6 Statusleisten
Pfeil 12.14 Bildlaufleisten (HScrollBar und VScrollBar)
Pfeil 12.15 Fortschrittsbalken (ProgressBar)
Pfeil 12.16 Animationen (Timer)
Pfeil 12.17 Container (Panel)
Pfeil 12.18 Registerkarten (TabControl)
Pfeil 12.19 Baumansichten (TreeView und TreeNode)
Pfeil 12.19.1 Knotenpunkte definieren
Pfeil 12.19.2 Eigenschaften
Pfeil 12.19.3 Ereignisse
Pfeil 12.19.4 Knotenexpansion und -reduktion
Pfeil 12.19.5 Knoten (TreeNode)
Pfeil 12.20 Teiler (Splitter und SplitContainer)
Pfeil 12.20.1 Splitter
Pfeil 12.20.2 SplitContainer
Pfeil 12.21 Listenansicht (ListView)
Pfeil 12.21.1 Beteiligte Klassen
Pfeil 12.21.2 Eigenschaften und Ereignisse
Pfeil 12.21.3 Listenelemente (ListViewItem)
Pfeil 12.21.4 Unterelemente in Spalten (ListViewSubItem)
Pfeil 12.21.5 Spaltenüberschriften (ColumnHeader)
Pfeil 12.21.6 Listenelemente Gruppen zuordnen
Pfeil 12.21.7 Sortierung der Spalten
Pfeil 12.21.8 Listenelemente ändern
Pfeil 12.21.9 Dateiexplorer-Beispiel

In diesem Kapitel lernen Sie die im Alltag des Programmierers wichtigsten Steuerelemente einer WinForms-Anwendung kennen.

12 Die wichtigsten Steuerelemente

Steuerelemente machen viel Gebrauch vom Konzept der Vererbung. Viele Eigenschaften, Methoden und Ereignisse sind in (fast) allen Steuerelementen vorhanden und werden daher in Basisklassen definiert. Bevor ich auf einzelne Steuerelemente eingehe, beschreibe ich diese Gemeinsamkeiten.


Rheinwerk Computing - Zum Seitenanfang

12.1 Gemeinsamkeiten Zur nächsten ÜberschriftZur vorigen Überschrift

Die in diesem Abschnitt gezeigten Eigenschaften, Methoden und Ereignisse sind nur eine Auswahl. Wenn Ihnen etwas fehlt, sollten Sie in der .NET-Dokumentation nachschlagen.


Rheinwerk Computing - Zum Seitenanfang

12.1.1 Größe und Position Zur nächsten ÜberschriftZur vorigen Überschrift

Die Größe eines Steuerelements wird durch die Eigenschaft Size vom Typ der Struktur Size beschrieben. Diese hat die für uns wichtigen Eigenschaften Width und Height, die die Breite und Höhe eines Steuerelements festlegen.

Die Position eines Steuerelements wird durch die Position seines linken oberen Eckpunktes relativ zum Ursprungspunkt des Clientbereichs des Containers beschrieben (die Form ist die Wurzel der Containerhierarchie). Die Eigenschaft Location speichert die Position in einer Struktur namens Point. Die Koordinaten eines Punktes bestehen aus den beiden öffentlichen Eigenschaften X und Y.

btn.Location = New Point(150, 20)

Alternativ können Sie auch mit Left und Top die Position festlegen. Left ist der Abstand des Steuerelement-Ursprungspunktes vom linken Rand des Clientbereichs, und Top ist der Abstand vom oberen Rand – bezogen auf den Clientbereich des Containers, dessen Abmessungen kleiner sind als seine Außenabmessungen.


Rheinwerk Computing - Zum Seitenanfang

12.1.2 Sichtbarkeit und Aktivierungszustand Zur nächsten ÜberschriftZur vorigen Überschrift

Die Eigenschaft Visible steuert die Sichtbarkeit eines Controls und ist vom Typ Boolean. True bedeutet, dass das Steuerelement angezeigt wird, und False bedeutet, dass es nicht sichtbar ist.

Sehr ähnlich verhält sich die Eigenschaft Enabled. Mit der Einstellung False ist ein Steuerelement deaktiviert und ändert seine Farbdarstellung. Eine deaktivierte Schaltfläche hat beispielsweise eine graue Beschriftung.


Rheinwerk Computing - Zum Seitenanfang

12.1.3 Beschriftung Zur nächsten ÜberschriftZur vorigen Überschrift

Die Eigenschaft Text dient generell dazu, eine Beschriftung anzugeben. Wird ein neues Steuerelement erzeugt, wird dieser Eigenschaft in den meisten Fällen eine Standardzeichenfolge zugewiesen, die dem automatisch zugewiesenen Namen des Steuerelements entspricht.

Mit der Eigenschaft Font des Steuerelements werden die Schriftgröße und die Schriftart der Eigenschaft Text eingestellt. Eine Ausnahme hiervon ist die Beschriftung der Titelleiste eines Formulars. Viele Steuerelemente stellen darüber hinaus auch mit TextAlign eine Eigenschaft bereit, um den Text auszurichten.


Rheinwerk Computing - Zum Seitenanfang

12.1.4 Farben Zur nächsten ÜberschriftZur vorigen Überschrift

Die Farben werden mit den Eigenschaften BackColor und ForeColor eingestellt. BackColor legt dabei die Hintergrundfarbe fest, ForeColor die Vordergrundfarbe. Die Vordergrundfarbe beschreibt die Farbe eines Textes.


Rheinwerk Computing - Zum Seitenanfang

12.1.5 Grafische Darstellung Zur nächsten ÜberschriftZur vorigen Überschrift

Die Eigenschaft Image eines Steuerelements ermöglicht die Anzeige eines Bildes im Steuerelement. Ein Image kann sowohl ein Bitmap als auch ein Icon oder eine Metadatei sein. Allerdings haben nicht alle Steuerelemente diese Eigenschaft. Häufig wird darüber hinaus auch die Eigenschaft ImageAlign angeboten, damit das Bild ausgerichtet werden kann.

Die sehr ähnliche Eigenschaft BackGroundImage zeigt ein Bild hintergrundfüllend an. Dazu wird das Bild sich periodisch wiederholend dargestellt.


Rheinwerk Computing - Zum Seitenanfang

12.1.6 Zugriffsrechte Zur nächsten ÜberschriftZur vorigen Überschrift

Standardmäßig ist der Zugriffsmodifizierer der Steuerelemente Friend.

Wollen Sie auf ein Steuerelement von außerhalb der Anwendung zugreifen, beispielsweise um den Inhalt einer Textbox lesen zu können, müssen Sie einen anderen Zugriffsmodifizierer wählen. Im Eigenschaftsfenster können Sie diesen mit der Eigenschaft Modifiers festlegen. Es ist nicht wirklich eine Eigenschaft, sondern nur eine Option der Entwicklungsumgebung.


Rheinwerk Computing - Zum Seitenanfang

12.1.7 Zusatzinformationen speichern Zur nächsten ÜberschriftZur vorigen Überschrift

Die Eigenschaft Tag dient allgemeinen Zwecken. Sie können ihr einen beliebigen Wert zuweisen, denn Tag ist vom Typ Object – zumindest solange Sie Tag im Programmcode einen Wert zuweisen. Ein Eintrag im Eigenschaftsfenster wird als String interpretiert.

Mit der Wertzuweisung ist keine bestimmte Aktion und auch kein bestimmtes Verhalten verbunden. Sie müssen im Programmcode selbst für die gewünschte Interpretation sorgen. Damit ist Tag nur ein »dummes« Feld, das auf Klassenebene deklariert ist.


Rheinwerk Computing - Zum Seitenanfang

12.1.8 Position bei Größenänderung der Form Zur nächsten ÜberschriftZur vorigen Überschrift

Alle Steuerelemente zeigen ein identisches Verhalten, wenn die Größe des Fensters zur Laufzeit verändert wird: Ausgehend vom linken oberen Punkt des Formulars behalten sie ihre Größe und Position bei. Ein Vergrößern der Form führt daher im rechten und unteren Teil zu einem steuerelementfreien Bereich. Bei einer Verkleinerung hingegen sind die rechts außen oder unten stehenden Steuerelemente möglicherweise nicht mehr sichtbar – ein hässlicher Effekt.

Meistens ist es sinnvoll, die Größe der Steuerelemente dynamisch der Größe der Form anzupassen – unter Beibehaltung ihre relativen Position innerhalb der Form. Realisieren lässt sich dies mit der Eigenschaft Anchor, die vom Typ der Enumeration AnchorStyles ist und insgesamt fünf Werte beschreibt, mit denen ein Steuerelement am Rand seines Containers verankert werden kann (siehe Tabelle 12.1). Verankert heißt, dass bei einer Größenänderung der Form der Abstand zwischen Formular und Form konstant bleibt.


Tabelle 12.1 Die Enumeration »AnchorStyles«

Konstante Das Steuerelement ist verankert

None

an keinem Rand

Top

am oberen Rand

Bottom

am unteren Rand

Left

am linken Rand

Right

am rechten Rand


AnchorStyles verfügt über das Attribut <Flags>. Die einzelnen Konstanten der Enumeration können daher bitweise kombiniert werden.

Sie können die Konstanten im Eigenschaftsfenster einstellen. In der Wertespalte wird über eine Schaltfläche mit einem nach unten zeigenden Pfeil ein kleines Hilfsfenster geöffnet (siehe Abbildung 12.1). In diesem Hilfsfenster markieren Sie die Abstände, die zum Rahmen des Containers konstant bleiben sollen. In der Abbildung handelt es sich um den Abstand zum oberen und zum unteren Rand der Form.

Abbildung 12.1 Einstellen der Eigenschaft Anchor


Rheinwerk Computing - Zum Seitenanfang

12.1.9 Die Größe mit der Form skalieren Zur nächsten ÜberschriftZur vorigen Überschrift

Manchmal ist es wünschenswert, dass Steuerelemente bündig am Rand des Containers ausgerichtet sind. Denken Sie in diesem Zusammenhang nur an MS Notepad oder an den Explorer. In Notepad passt sich das Textsteuerelement den Rändern der Form automatisch an. Im Explorer sind den Teilfenstern Bereiche so zugeordnet, dass bei einer Größenänderung der Form oder einer Neuaufteilung des Clientbereichs das linke Teilfenster eine konstante Breite hat.

Mit der Eigenschaft Dock können Sie dieses Verhalten festlegen, indem Sie spezifizieren, an welcher Seite des Containers das Steuerelement »festgeklebt« werden soll. Neben dem Standard None der Enumeration DockStyle stehen Ihnen noch weitere fünf Möglichkeiten zur Verfügung: Left, Right, Top, Bottom und Fill. Mit Letzterer wird das Steuerelement an allen vier Rändern des Containers ausgerichtet.


Rheinwerk Computing - Zum Seitenanfang

12.1.10 Kindelemente Zur nächsten ÜberschriftZur vorigen Überschrift

Jedes Kontrollelement kann andere Kontrollelemente als Kinder haben, die in der Eigenschaft Controls vom Typ Control.ControlCollection gespeichert werden.


Rheinwerk Computing - Zum Seitenanfang

12.1.11 Steuerelemente fokussieren Zur nächsten ÜberschriftZur vorigen Überschrift

Wenn Sie auf der Referenz des Steuerelements die Methode Focus aufrufen, wird dieses fokussiert, zum Beispiel:

textBox1.Focus()

Eine Alternative, den Eingabefokus zu setzen, bietet die Methode Select.

Fokuswechsel mit der Alt-Taste

Häufig sind in Windows-Fenstern Steuerelemente zu finden, die in ihrer Beschriftung einen unterstrichenen Buchstaben aufweisen. Diese Kennzeichnung dient dem Anwender als optischer Hinweis, dass er mit der Tastenkombination Taste Alt + unterstrichener Buchstabe den Fokus auf das entsprechende Steuerelement setzen kann.

Um dieses Verhalten zu erreichen, müssen Sie vor dem betreffenden Buchstaben nur das »&«-Zeichen in der Text-Eigenschaft eintragen. Müssen Sie innerhalb der Beschriftung ein »&«-Zeichen anzeigen, geben Sie das Zeichen zweimal hintereinander an.

Fokuswechsel mit Tabulatoren

Ein Steuerelement kann mit TabStop=False aus der Fokussierreihenfolge herausgenommen werden. Wechselt der Anwender mit der Taste Tabulator -Taste zu diesem Steuerelement, leitet es den Fokus sofort an das nächste in der Fokussierreihenfolge stehende Steuerelement weiter.

Die Methode ProcessTabKey der Form aktiviert das in der Tabulatorreihenfolge nächste Steuerelement. Das Argument der Methode legt fest, ob die Tabulatorreihenfolge vorwärts (= True) oder rückwärts (= False) durchlaufen wird.

Ereignisse beim Fokuswechsel

Beim Fokuswechsel spielen immer zwei Steuerelemente eine Rolle: das Steuerelement, das den Fokus verliert, und das Steuerelement, das den Fokus erhält. In diesem Szenario sind sechs Ereignisse interessant:

  • Enter wird beim Eintreten in den Bereich des Steuerelements ausgelöst.
  • GotFocus tritt auf, wenn ein Steuerelement den Fokus erhält.
  • Leave wird wird beim Verlassen des Bereichs des Steuerelements ausgelöst.
  • LostFocus wird ausgelöst, wenn das Steuerelement den Fokus verliert.
  • Validating tritt während einer Überprüfung des Steuerelements auf.
  • Validated tritt nach dem Beenden der Überprüfung auf.

Enter und GotFocus treten bei dem Steuerelement auf, das den Eingabefokus erhält. Alle anderen Ereignisse treten bei dem Steuerelement auf, das den Eingabefokus abgibt. Die beiden Ereignisse Validating und Validated setzen darüber hinaus voraus, dass die Eigenschaft CausesValidation des fokusabgebenden Steuerelements auf True eingestellt ist.

Entscheidend für die Reihenfolge der Ereignisse ist, auf welche Art und Weise der Fokuswechsel erfolgt. Der Fokuswechsel mit der Maus oder durch Aufruf von Focus führt zur folgenden Ereignisreihenfolge:

  • Enter
  • GotFocus
  • LostFocus
  • Leave
  • Validating
  • Validated

Ein wenig anders ist die Reihenfolge, wenn dem Fokuswechsel die Tastatur oder der Aufruf der Methode Select zugrunde liegt.

  • Enter
  • GotFocus
  • Leave
  • Validating
  • Validated
  • LostFocus

Sie sollten die Reihenfolge bei der Implementierung der Ereignishandler berücksichtigen. Außerdem bietet es sich an, entweder GotFocus und LostFocus zu implementieren oder Enter und Leave.

Validierung von Benutzereingaben

Das Ereignis Validating dient dazu, eine Überprüfung des Controls vor dem Fokuswechsel vorzunehmen. Bei einer Textbox könnte das beispielsweise der Inhalt der Eigenschaft Text sein. Hat sie einen unzulässigen Inhalt, lässt sich in Validating der Fokuswechsel unterbinden. Dazu übergibt das Ereignis dem Ereignishandler ein Objekt vom Typ CancelEventArgs, dessen Eigenschaft Cancel auf True zu setzen ist.

Im folgenden Codefragment wird der Inhalt der Textbox text überprüft. Ist sie leer, wird der Fokus nicht an das nächste in der Fokussierreihenfolge stehende Steuerelement weitergegeben:

Sub text_Validating(sender As Object, e As CancelEventArgs) 
  if text.Text.Length = 0 Then e.Cancel = True 
End Sub

Hat das Steuerelement die Prüfung positiv abgeschlossen, wird Validated ausgelöst.

Eine Bedingung ist mit der Auslösung der beiden Ereignisse Validating und Validated verbunden: Die Eigenschaft CausesValidation des zu überprüfenden Steuerelements muss True (Standardeinstellung) sein. False unterdrückt die Gültigkeitsüberprüfung.


Rheinwerk Computing - Zum Seitenanfang

12.1.12 Maus- und Tastaturereignisse topZur vorigen Überschrift

Die meisten Steuerelemente reagieren auf Maus- und Tastaturereignisse. Das vermutlich wichtigste Mausereignis dürfte das Ereignis Click sein, das ausgelöst wird, wenn der Anwender zur Laufzeit ein Steuerelement anklickt. Sehr ähnlich ist das Ereignis DoubleClick, das auf die schnelle Abfolge zweier Mausklicks reagiert. Das Click-Ereignis wird übrigens auch dann ausgelöst, wenn doppelt auf ein Steuerelement geklickt wird. In den meisten Fällen werden Sie sich daher entscheiden müssen, welches der beiden Ereignisse Sie codieren wollen.

Click und MouseClick sowie DoubleClick und MouseDoubleClick sind jeweils fast identisch. Während Click und DoubleClick keine ereignisspezifischen Informationen an den Ereignishandler weiterleiten, können Sie bei den beiden anderen beispielsweise die Koordinaten des Mauszeigers beim Klicken auf eine Komponente ermitteln.



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