Windows Forms: Eigenschaften und Ereignisse eines Formulars

Ein Formular (also die Klasse Form) hat einige Eigenschaften und Ereignisse, um dessen Aussehen zu steuern und zu beeinflussen. Natürlich werden wir hier nicht alle Eigenschaften und Ereignisse vorstellen. Dies gilt auch für die weiteren Themen zu den Windows Forms Steuerelementen. Viele der Eigenschaften können durch den englischen Namen abgeleitet werden. Des Weiteren hilft uns das Eigenschaftsfenster bei der Editierung von Eigenschaften. Alle Eigenschaften können über den Designer und zur Programmlaufzeit über den Programmcode geändert werden. Die Eigenschaft Name ist eine spezielle Eigenschaft, die im Designer zusätzlich zum internen Namen des Steuerelements dazu verwendet wird, den Variablennamen festzulegen (standardmäßig werden Namen wie label1, label2 etc. verwendet, für eine bessere Übersicht sollten diese jedoch geändert werden).
Wollen wir uns am Anfang einmal allgemeingültige Eigenschaften anschauen, welche auch für andere Steuerelemente verwendet werden können. Die Eigenschaft BackColor und ForeColor ändert die Hintergrund- bzw. Vordergrundfarbe (oftmals Schriftfarbe). Mit Enabled kann das Steuerelement aktiviert bzw. deaktiviert werden. Width und Height sind Eigenschaften für die Größe. Mit AutoSize kann festgelegt werden, ob die Größe automatisch ermittelt werden soll. Die Location-Eigenschaft besteht aus einer x- und y-Koordinate, welche zur Platzierung des Steuerelements zuständig ist. Ähnlich zur Location-Eigenschaft gibt es als Alternative zu der Width- und Height-Eigenschaft, die Eigenschaft Size für die Größe. Mit der Eigenschaft Visible kann ein Steuerelement ein- und ausgeblendet werden. Um den Titel (oder bei anderen Steuerelementen den „Text“ bzw. Inhalt) zu ändern, kann die Text-Eigenschaft gesetzt werden. Die Eigenschaft TabIndex ist eine sehr wichtige Eigenschaft, um die Tabreihenfolge zu verändern. Diese Eigenschaft ist jedoch erst dann wichtig, wenn unser Formular mehrere fokussierbare Steuerelemente (wie z. B. ein Textfeld oder einen Button) besitzt. Die Anordnung der Tabreihenfolge wird automatisch beim Erstellen von Steuerelementen getroffen, d. h. das Element, welches als letztes im Designer eingefügt wurde, besitzt den größten „Tab-Index“ und wird dadurch als letztes per Tabulator-Taste fokussiert, bevor das Ganze wieder von vorne beginnt.
Nun wollen wir uns noch einige spezielle Eigenschaften der Form-Klasse anschauen: Mit der Eigenschaft FormBorderStyle legen wir einen Wert der gleichnamigen Enumeration fest, mit welcher die Rahmenart des Formulars gesteuert werden kann: FixedSingle (Formular welches nicht vergrößert werden kann), FixedDialog (Formular welches als Dialog-Fenster genutzt wird und nicht vergrößert werden kann), Sizable (Formular welches vergrößert werden kann) und None (Formular ohne Rahmen). Über die MinimizeBox- und MaximizeBox-Eigenschaft können die Steuerungs-Buttons in der Fensterleiste und somit auch deren Funktion deaktiviert werden, d. h. durch die Zuweisung des Werts false an die MaximizeBox-Eigenschaft wird der Maximierungs-Button ausgegraut. Zugleich ist es dann nicht mehr möglich, das Fenster zu maximieren. StartPosition ist eine Eigenschaft, um die Position des Fensters beim Programmstart festzulegen. Hierbei wird ebenfalls ein Wert der gleichnamigen Enumeration zugewiesen: CenterParent (zentrierte Ausrichtung zum übergeordneten Fenster), CenterScreen (zentrierte Ausrichtung zum Bildschirm), Manual (manuelle Festlegung der Position durch die Eigenschaft Location) und WindowsDefaultLocation (Standard-Ausrichtung von Windows). Die Eigenschaft ShowIcon und ShowInTaskbar steuert die Anzeige des Icons in der Fensterleiste und in der Taskleiste. WindowState ist eine Eigenschaft und Enumeration, welche angibt, in welchem Modus das Fenster beim Starten geöffnet werden soll: Normal (Normal-Modus), Maximized (maximiert) und Minimized (minimiert). Diese Eigenschaft kann auch zur Laufzeit geändert werden, um z. B. das Fenster zu minimieren.
Als nächstes stellen wir einige allgemeingültige Ereignisse vor: Hier ist z. B. das Click-Event zu nennen, welches bei einem einfachen Mausklick eintritt. Dieses Event wird z. B. bei Buttons verwendet. Für die Tastatur- und Maussteuerung gibt es noch einige andere Events, welche wir uns jedoch später genauer anschauen. Das Ereignis Paint tritt ein, wenn das Steuerelement gezeichnet wird. Bei der grafischen Programmierung wird die Ereignis-Funktion dieses Events dazu verwendet, spezielle Steuerelemente bzw. grafische Teile zu zeichnen. Um ein Steuerelement dazu zu veranlassen, dass es erneut gezeichnet wird, können wir die Funktion Invalidate() aufrufen. Hierdurch wird das Steuerelement erneut gezeichnet und anschließend das Paint-Ereignis ausgelöst.
Auch die Form-Klasse verfügt über einige spezielle Events: Das Load-Event tritt ein bevor das Formular angezeigt wird. Das FormClosing-Event tritt ein bevor das Formular geschlossen wird. Da dem Ereignis FormClosingEventArgs als Event-Argumente übergeben werden, können wir über die Eigenschaft Cancel den Schließungs-Vorgang des Formulars abbrechen. Wird der Schließungs-Vorgang nicht abgebrochen, so wird das Formular geschlossen und das Event FormClosed ausgelöst.
Eine sehr praktische Funktion ist die statische Funktion Show() der Klasse MessageBox, über welche wir eine Nachrichten-Box (auch Meldungsfenster genannt) anzeigen können. Der Funktion können bis zu fünf Argumente übergeben werden. Dabei können die letzten in absteigender Reihenfolge weggelassen werden. Als erstes Argument übergeben wir den Text, gefolgt vom Titel. Der dritte Parameter ist ein Wert der Enumeration MessageBoxButtons, welcher die verschiedenen anzuzeigende Buttons auswählt: OK, OKCancel, RetryCancel, YesNo, YesNoCancel und AbortRetryIgnore. Der vierte Übergabeparameter legt das anzuzeigende Icon an. Hierfür wird ein Wert der Enumeration MessageBoxIcon benötigt: Information, Warning, Stop und Question. Mit der Enumeration MessageBoxDefaultButton können wir den fünften und letzten Übergabeparameter festlegen. Hiermit wird der Button ausgewählt, welcher standardmäßig fokussiert werden soll, festgelegt: Button1, Button2 und Button3. Der Rückgabewert der Show()-Funktion ist ein Wert der Enumeration DialogResult, mit welcher angegeben wird, mit welchem Button das Meldungsfenster geschlossen wurde: OK, Cancel, Retry, Yes, No, Abort und Ignore. Bei der Abfrage des Werts bzw. dem Speichern des Werts in einer Variablen muss der vollständige Namensraum angegeben werden, da andernfalls keine Unterscheidung zwischen der Enumeration DialogResult und der Eigenschaft DialogResult des Formulars möglich wäre (siehe Beispiel).

Form1.cs

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
	// Beenden-Meldung anzeigen, falls "Nein" geklickt wird, Schließen-Vorgang des Formulars beenden
	if (MessageBox.Show("Sind Sie sicher, dass Sie das Programm beenden möchten?",
						"Programm beenden?",
						MessageBoxButtons.YesNo,
						MessageBoxIcon.Question,
						MessageBoxDefaultButton.Button2) == System.Windows.Forms.DialogResult.No)
		e.Cancel = true;
}

private void Form1_Load(object sender, EventArgs e)
{
	MessageBox.Show("Das Formular der Anwendung wurde geladen!");
}
Download

LinksRechts