Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Visual C# 2011 Grundkurs

Events in Windows Forms

Testen Sie unsere 2017 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Sie möchten beim Klick auf einen Button selbst erstellten Code ausführen? Dazu sind die Events wie geschaffen – und tatsächlich nutzt Windows Forms dafür Events.
06:33

Transkript

Wenn wir eine Anwendung mit Windows Forms erstellen und diese ausführen, nutzt Windows Forms im Hintergrund ganz massiv das Eventing Model von .NET. Wie diese Events ausgelöst werden, und wo wir diese Events programmieren können, schauen wir uns jetzt genauer an. Ich ziehe dazu so einen Button hier auf meine Form. Dieser Button hat ein paar Eigenschaften, wie z.B. "Text". Wir ändern den auf "Klick mich", aber wir möchten ja nicht nur den Text auf dem Button verändern, sondern wir möchten auch einen bestimmten Code ausführen, wenn dieser Button geklickt wird. Diesen Button hat irgendwann mal ein Designer bei Microsoft erstellt, hat diese Klasse gebaut und zu dieser Zeit war ihm schon klar, dass irgendwann mal jemand wie wir kommt und möchte, dass, wenn man auf diesen Button klickt, ein bestimmter Code ausgeführt wird, den wir definieren. Um genau so ein Problem zu lösen, haben wir das Eventing Model in .NET kennengelernt, und genauso wird es hier auch gelöst: mit Events. Ein Button hat viele Eigenschaften, hat sehr viele Methoden. Aber er hat auch sehr viele Events, weil bei einem Button auch sehr, sehr viele Events auftreten. Wenn wir diese Anwendung starten, können wir uns das mal kurz überlegen. Wenn ich jetzt mit dieser Maus über den Button gehe, sieht man, dass die Farbe sich geändert hat - und das ist jetzt schon das erste Event, das ist das MouseOver-Event. Dann gibt es, wenn ich mit der Maus wieder von diesem Button runtergehe, das MouseLeave-Event. Dann gibt es, wenn ich diesen Button klicke, z.B. das ButtonClick-Event. Das waren jetzt nur drei Stück von einem riesigen Haufen an Events innerhalb dieses Buttons. Welche Events das sind, können wir uns hier anschauen. Wir sind hier in unserer "Eigenschaftenleiste". Dort können wir uns die "Properties" anschauen, wenn wir hier oben diesen Reiter aktiviert haben. Rechts daneben ist so ein kleiner Blitz - den kennen wir bereits von "Ereignissen" - und wenn wir den auswählen, dann bekommen wir eine Liste mit Events angezeigt. Die ist ganz schön lang. Ich verbreitere den Bereich hier rechts, und dann schauen wir mal. Wir haben hier wirklich Events für alles Mögliche. Wir haben z.B. Events, wenn die hintere Farbe des Buttons sich geändert hat, oder wenn die Maus z.B. über diesen Button gegangen ist - was wir gerade simuliert haben. Oder, wenn die Maus wieder runtergegangen ist, oder wenn die Maus sich überhaupt über diesen Button bewegt hat, oder wenn die Maustaste runtergedrückt wurde, oder wenn die Maustaste wieder losgelassen wurde, usw. Aber das für den Butten wichtigste Event ist das ClickEvent. Und dieses ClickEvent wird eben dann ausgelöst, wenn ich einmal mit der Maustaste auf meinen Button klicke. Ich könnte jetzt an dieser Stelle hingehen und einmal "Enter" drücken, dann würde eine Methode generiert, die ausgelöst wird, wenn dieser Button geklickt wird. Aber bevor wir das machen, gucken wir uns die Datei an, und wo wir überhaupt Code schreiben. Wir wissen, dass in dieser Datei der vom "Designer" generierte Code steht. Zusätzlich müssen wir natürlich selber noch eine Möglichkeit haben, irgendwo Code zu schreiben. Und diese Möglichkeit haben wir, wenn wir hier in unserer Form rechtsklicken und dann auf "Code anzeigen" klicken, oder hier oben klicken und dann sagen "Code anzeigen". Ich entscheide mich an dieser Stelle für einen Rechtsklick auf die Form, und lasse mir diesen Code anzeigen. Wir sehen schon, das ist jetzt weitaus weniger Code. Wir haben jetzt hier immer noch den Standardkonstruktor. In diesem Standardkonstruktor wird eine Methode aufgerufen. Aber es ist weniger Code, als der Code, den wir gesehen haben, der vom "Designer" generiert wird. Jetzt haben wir hier den Konstruktor und in diesem Konstruktor wird eine InitializeComponent-Methode aufgerufen. Sehen Sie irgendwo in dieser Form eine InitializeComponent-Methode? Wahrscheinlich eher nicht. Das ist wieder eine Eigenart von C#. In C# gibt es sogenannte "Partial Classes" - das wird oben durch dieses Schlüsselwort "partial" gekennzeichnet. "Partial Classes" heißt, ich habe eine Klasse und diese Klasse ist nicht in einer Datei definiert, sondern in mehreren Dateien. Der Compiler geht nachher hin und fügt diese zusammen. Wenn wir hier die vom "Designer" generierte Datei angucken, mit dem Designer-generierten Code, dann ist das ebenfalls eine "Partial Class" und die heißt ebenfalls "Form1". D.h., wenn der Compiler nachher diese Klasse kompiliert, dann fügt er beide Dateien zusammen. Und wenn wir uns das hier angucken, dann gibt es hier die InitializeComponent-Methode. D.h., direkt am Anfang, wenn die Form instanziiert wird, wird hier die InitializeComponent aufgerufen, und dort steht eben der Code drin, um die ganzen Controls auf unserer Oberfläche zu platzieren. Und in dieser Codedatei möchten wir jetzt z.B. auch irgendetwas tun, wenn unser Button geklickt wird. Dazu gehen wir wieder zurück, klicken unseren Button wieder an - und wir hatten schon gesagt, das ist das ClickEvent, das wir gerne haben möchten. Wir könnten jetzt durch das Drücken von "Enter" - in dieser Datei, die wir gerade gesehen haben - eine Eventbehandelnde Methode erstellen lassen, oder alternativ, indem wir hier einen Text schreiben, wie z.B. "MyClickHandler" und dann "Enter" drücken. Aber wir haben eine wesentlich bequemere Variante: Wir gehen einfach hier auf diesen Button und machen einen Doppelklick. Dann sieht man, er ist in diese Klasse reingesprungen und hat eine Methode generiert, und wir haben jetzt alles, was wir brauchen und können anfangen, unseren Code zu schreiben. Wir lassen uns eine Messagebox anzeigen, und diese Messagebox kennen Sie sicherlich: Das sind immer diese netten Dialogfelder, die aufpoppen, wenn irgendein Fehler passiert ist. Wir nehmen Messagebox und diese Messagebox hat eine Methode "Show", und dort schreiben wir unser allseits bekanntes "Hello World". Wir setzen jetzt zusätzlich noch einen Breakpoint hier in die Anwendung und starten das Ganze. Wir haben jetzt hier unsere Anwendung mit diesem Button drin. Sobald ich diesen Button klicke, sehen wir: Hier hinten ist der Debug-Cursor in der ersten Zeile, d.h., wir haben auf den Button geklickt, der Button hat dieses Event ausgelöst und diese Methode händelt unser Event. Und wenn wir auf "Weiter" gehen, dann haben wir hier in unserer Anwendung die Messagebox, in der steht "Hello World". Jetzt könnte man sagen: Der Button fordert ein Event, aber irgendwo muss ich doch auch an dieses Event meine behandelnde Methode hängen. Das ist genau das, was der "Designer" im Code generiert. Wir suchen diese Stelle einmal. Hier ist wieder der Bereich, der vom Designer generiert wird. Hier ist die Erstellung des Buttons, hier ist die Parametrisierung, und genau hier unten in der letzten Zeile finden wir den Bereich, wo an meinen Button1 an dieses ClickEvent die behandelnde Methode Button1Click, die im anderen Teil der Klasse definiert ist, angehängt wird. Das war eigentlich alles, was wir machen mussten, um eine erste kleine Anwendung mit Windows Forms zu schreiben. Wir haben uns in diesem Beispiel angeguckt, wie man bei Windows Forms das Eventing Model nutzt. Alle Controls, die es in Windows Forms gibt, unterstützen zahlreiche Events für alle mögliche Dinge, die man sich vorstellen kann: Wenn eine Maus über dem Control ist, wenn die Maus über das Control bewegt wird, wenn dort geklickt wird, wenn dieses Control mit der Maus wieder verlassen wird, wenn die Größe verändert wird oder die Hintergrundfarbe und all so was. Wenn ich diese Events abonnieren möchte, kann ich das rechts im Eigenschaftenfenster machen. Bei selektierten Controls finde ich hier die Eventliste, und dahinter befindet sich so eine Art Textbox. Wenn ich dort einen Doppelklick reinmache, generiert mir dieser "Designer" automatisch den Teil der Datei, die ich bearbeiten kann - eine eventbehandelnde Methode - und da kann ich dann meinen Code reinschreiben.

Visual C# 2011 Grundkurs

Steigen Sie in die C#-Programmierung ein und lernen Sie sowohl die Grundlagen der Sprache C# als auch die Entwicklungsumgebung Visual Studio 2010 und .NET-Framework kennen.

7 Std. 28 min (81 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Software:
Visual Studio Visual Studio 2010
Exklusiv für Abo-Kunden
Ihr(e) Trainer:
ISBN-Nummer:978-3-8273-6375-6
Erscheinungsdatum:27.06.2011
Laufzeit:7 Std. 28 min (81 Videos)

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!