Mit Windows Forms können Sie Desktopanwendungen visuell erstellen, indem Sie UI-Elemente auf eine Leinwand ziehen. Zu diesen UI-Elementen gehören Widgets wie Schaltflächen, Bedienfelder oder Kontrollkästchen.

Jedes UI-Element empfängt bestimmte Ereignisse. Beispielsweise können Sie ein Click-Ereignis für Schaltflächen, ein Changed-Ereignis für Kontrollkästchen oder ein Drag-and-Drop-Ereignis für Bedienfelder haben.

Ereignisse verwenden Ereignishandler oder Funktionen, die nur ausgeführt werden, wenn dieses bestimmte Ereignis eintritt.

Arten von Ereignissen, die für verschiedene UI-Elemente verwendet werden

Jedes UI-Element hat eine Liste von Ereignissen. Es gibt viele Kurse, wo Sie können lernen Sie wichtige UX- oder UI-Theorien und -Praktiken kennen um Ihnen bei der Entscheidung zu helfen, welche UI-Elemente verwendet werden sollen. Hier sind einige Beispiele für Ereignisse, die von UI-Elementen verwendet werden.

Key Down-, Key Up- oder Key Press-Ereignisse

UI-Elemente, die es dem Benutzer ermöglichen, Text einzugeben, wie z. B. ein Textfeld, können diese Ereignisse verwenden. Diese Ereignisse werden jedes Mal ausgelöst, wenn der Benutzer eine Taste auf seiner Tastatur drückt.

Diese können in Szenarien nützlich sein, in denen Sie über eine Suchfunktion verfügen und möglicherweise ständig den Wert des Textfelds überprüfen müssen.

PrivatgeländeLeeretextBox1_KeyUp(Objektsender, KeyEventArgs e)
{
TextBox textbox = (TextBox) Absender;
Zeichenfolge aktuellerTextBoxWert = Textfeld. Text;
}

Ereignis laden

Das Ladeereignis tritt auf, wenn das Formular oder ein UI-Element auf dem Bildschirm gerendert wird. Sie können dieses Ereignis verwenden, wenn bestimmte Funktionen während der Initialisierungsphase des Formulars oder Steuerelements ausgeführt werden sollen.

Ein Szenario, in dem dies nützlich sein kann, ist, wenn Sie dem Formular programmgesteuert Steuerelemente hinzufügen möchten, während es noch geladen wird.

PrivatgeländeLeereForm1_Laden(Objekt Sender, EventArgs e)
{
QuickInfo ToolTipp1 = Neu QuickInfo();
toolTip1.AutoPopDelay = 5000;
toolTip1.InitialDelay = 1000;
toolTip1.ReshowDelay = 500;
toolTip1.ShowAlways = Stimmt;
toolTip1.SetToolTip (this.button1, "Mein Knopf1");
toolTip1.Popup += Dies.ToolTip1_Popup;
}

Das Tooltip-Popup-Ereignis tritt auf, wenn Sie den Mauszeiger über ein UI-Element in der Anwendung bewegen und ein Tooltip angezeigt wird. Die an die Ereignisbehandlungsroutine übergebenen Argumente ermöglichen Ihnen den Zugriff auf Daten über die QuickInfo, z. B. ihren Text oder ihre Größe.

PrivatgeländeLeereToolTip1_Popup(Objektsender, PopupEventArgs e)
{
ToolTip tooltip = (ToolTip) Absender;
Zeichenfolge TooltipText = Tooltip. GetToolTipp (Schaltfläche1);
Var tooltipSize = z. QuickInfoGröße;
}

Drag-and-Drop-Ereignis

Viele UI-Elemente können das Drag-and-Drop-Ereignis verwenden, einschließlich Bedienfeld, Schaltfläche, Bildfeld, Gruppenfeld und mehr. Dieses Ereignis wird ausgelöst, wenn der Benutzer eine Datei in das UI-Element zieht.

PrivatgeländeLeerepanel1_DragDrop(Objektsender, DragEventArgs e)
{
string[] files = (string[])e. Daten. GetData (Datenformate. FileDrop, FALSCH);
}

Mouseover- und Mouseleave-Ereignisse

Das Mouse-Over-Ereignis wird ausgelöst, wenn die Maus über ein UI-Element schwebt. Sobald die Maus das Element verlässt und aufhört, über dem Element zu schweben, wird das Ereignis „Maus verlassen“ ausgelöst.

PrivatgeländeLeerebutton1_MouseLeave(Objekt Sender, EventArgs e)
{
Button button = (Button) Absender;
Var Knopftext = Knopf. Text;
}

Geändertes Ereignis überprüft

UI-Elemente, die es dem Benutzer ermöglichen, eine Option auszuwählen, können das Ereignis „Geändert“ verwenden. Dazu gehören Optionsfelder und Kontrollkästchen. Die Funktion wird ausgelöst, wenn Sie das Kontrollkästchen aktivieren oder deaktivieren.

PrivatgeländeLeerecheckBox1_CheckedChanged(Objekt Sender, EventArgs e)
{
CheckBox checkbox = (CheckBox) Absender;
CheckState-Zustand = Kontrollkästchen. CheckState;
bool isChecked = Kontrollkästchen. Geprüft;
}

Ereignisse "Wert geändert", "Ausgewählter Wert geändert" oder "Datum geändert".

Das Wertänderungsereignis ist für UI-Elemente verfügbar, mit denen Sie eine Option zum Ändern eines Werts auswählen können. Dazu gehören Kombinationsfelder, Datums- und Zeitauswahl oder der Kalender. Die Funktion wird ausgelöst, wenn der Benutzer einen neuen Wert auswählt.

PrivatgeländeLeeremonthCalendar1_DateChanged(Objektsender, DateRangeEventArgs e)
{
MonthCalendar kalender = (MonthCalendar) Absender;
Var heute = Kalender. Heutiges Datum;
Var selectedDatesStart = z. Anfang;
Var selectedDatesEnd = z. Ende;
}

Klicken Sie auf Schaltflächenereignis

Die Click-Event-Handler-Funktion wird ausgelöst, wenn Sie auf eine Schaltfläche klicken.

PrivatgeländeLeerebutton1_Click(Objekt Sender, EventArgs e)
{
Button button = (Button) Absender;
Zeichenfolge Textwert = Schaltfläche. Text;
}

Die Struktur eines Event-Handlers

Ereignishandler haben zwei primäre Parameter: den Sender und ein Ereignisobjekt.

Der Absender ist eine Referenz auf das UI-Element oder Objekt, das das Ereignis ausgelöst hat, z. B. eine Schaltfläche, ein Kontrollkästchen oder ein Bedienfeld. Bei einem Ereignis mit geändertem Kontrollkästchen wäre der Absender beispielsweise das Kontrollkästchen, auf das der Benutzer geklickt hat.

Der Ereignisparameter enthält ein Objekt, das Daten über das aufgetretene Ereignis speichert. Dies könnte die X- und Y-Koordinaten eines Tastenklicks oder die Position der Maus in dem Moment beinhalten, in dem das Ereignis ausgelöst wird.

PrivatgeländeLeerepanel1_DragDrop(Objektsender, DragEventArgs e)
{
// Auf Eigenschaften des UI-Elements zugreifen, das das Ereignis ausgelöst hat
Panel Panel = (Panel) Absender;
Tafel. Aktiviert = FALSCH;
// Auf Daten des Ereignisses zugreifen
Var eventData = z. Daten;
}

So erstellen und verwenden Sie Ereignishandler

Erstellen Sie zunächst eine neue Winforms Forms-Anwendung in Visual Studio. Wenn Sie neu bei Windows Forms sind, gibt es viele klonen Sie Apps, die Sie beim Erlernen von Windows Forms erstellen können.

Event-Handler auf der Leinwand

Sie können Ereignishandler im Eigenschaftenfenster auf der rechten Seite der Leinwand generieren. Nachdem Sie eine neue Windows Forms-Anwendung erstellt haben, erstellen Sie einen Ereignishandler für das Kontrollkästchen-UI-Element. Dies wird ausgelöst, wenn der Benutzer das Kontrollkästchen aktiviert oder deaktiviert.

  1. Öffnen Sie das Toolboxmenü auf der linken Seite von Visual Studio. Ziehen Sie ein Kontrollkästchen-UI-Element auf die Leinwand und legen Sie es dort ab.
  2. Markieren Sie das Kontrollkästchen auf der Leinwand.
  3. Klicken Sie im Eigenschaftenfenster auf der rechten Seite auf das gelbe Blitzsymbol, um die Liste der Ereignisse anzuzeigen. Scrollen Sie nach unten zu Geändert Veranstaltung.
  4. Klicken Sie auf das leere Feld neben dem Geändert Veranstaltung. Dadurch wird automatisch eine neue Funktion zur Behandlung des Ereignisses generiert. Die Funktion wird im Code-Behind-Teil der Anwendung erstellt, in Ihrem .cs-Datei.
    PrivatgeländeLeerecheckBox1_CheckedChanged(Objekt Sender, EventArgs e)
    {
    // Ihr Code hier
    }

Ereignishandler, die den CodeBehind verwenden

Erstellen Sie im CodeBehind eine neue Funktion und verknüpfen Sie diese mit dem UI-Element auf dem Canvas.

  1. Klicken Sie auf der Leinwand auf ein Schaltflächen-UI-Element und ziehen Sie es. Standardmäßig lautet der Name der neuen Schaltfläche "button1".
  2. Offen .cs. Wenn Sie den standardmäßigen Windows Form-Anwendungsnamen "Form1" beibehalten haben, wäre dies Form1.cs.
  3. Erstellen Sie innerhalb der Form1-Klasse eine neue Funktion. Stellen Sie sicher, dass es der Struktur eines Event-Handlers folgt und zwei Parameter für den Sender und das Event-Objekt hat.
    PrivatgeländeLeerebutton1_MouseHoverEvent(Objekt Sender, EventArgs e)
    {
    // Ihr Code hier
    }
  4. Verknüpfen Sie den Event-Handler mit dem Mouse-Hover-Event von button1. Sie können dies im Konstruktor tun.
    Öffentlichkeit Form 1()
    {
    Initialisieren der Komponente();
    Dies.button1.MouseHover += button1_MouseHoverEvent;
    }
  5. Alternativ können Sie die Funktion auch über das Eigenschaftsfenster auf dem Canvas mit dem Event verknüpfen. Öffnen Sie das Eigenschaftenfenster und geben Sie den Namen Ihres Ereignishandlers in das Feld MouseHover ein. Das wäre button1_MouseHoverEvent.

So verwenden Sie denselben Event-Handler für mehrere Events

Sie können dieselbe Funktion mit mehreren Ereignissen verknüpfen. In diesem Fall, wenn eine einzelne Funktion aufgerufen wurde MouseEvent, könnten Sie diesen Ereignishandler sowohl dem Maus-Hover- als auch dem Mausklick-Ereignis hinzufügen. Dadurch werden beide Ereignisse mit derselben Funktion behandelt.

Dies.button1.MouseHover += button1_MouseEvent;
Dies.button1.MouseClick += button1_MouseEvent;

Verwenden von Ereignissen in einer Windows Form-Anwendung

Mit einer Windows Forms-Anwendung können Sie verschiedene UI-Elemente wie Schaltflächen, Bedienfelder oder Textfelder per Drag & Drop auf eine Leinwand ziehen. Sie können diesen UI-Elementen Ereignishandler hinzufügen, basierend auf den verschiedenen Ereignissen, die innerhalb der Anwendung auftreten können.

Wenn Sie eine Windows-Anwendung erstellen, möchten Sie möglicherweise auch Bilder oder Grafiken als Teil Ihrer Benutzeroberfläche hinzufügen. Sie können verschiedene C#-Klassen wie die Grafik-, Stift- oder Farbklasse verwenden, mit denen Sie verschiedene Arten von Formen auf die Zeichenfläche zeichnen können.