Sie sind hier:
Wissen
Telefon (Mo-Fr 9 bis 16 Uhr):
+49 (0)201 649590-50
|
Kontaktformular
Buy me a coffee
MENU
Medien
Übersicht
Lexikon/Glossar
Spickzettel
Weblog
Konferenzvorträge
Fachbücher
Fachartikel
Leserportal
Autoren gesucht!
Literaturtipps
Praxisnahe Fallbeispiele
Downloads
Newsletter
.NET
Startseite
.NET 8.0
.NET 7.0
.NET 6.0
.NET 5.0
.NET Core
.NET 4.0/4.5.x/4.6.x
.NET 3.0/3.5
.NET 2.0
.NET-Lexikon
Entwicklerwerkzeuge
Klassenreferenz
Softwarekomponenten
Windows Runtime
World Wide Wings-Demo
Versionsgeschichte
Codebeispiele
ASP.NET
Artikel
Bücher
Schulung & Beratung
Konferenzen/Events
ASP.NET
Startseite
Lexikon
Sicherheit
Konfiguration
Global.asax
Tracing
Technische Beiträge
Klassenreferenz
Entwicklerwerkzeuge
Softwarekomponenten
Forum
Schulung & Beratung
PowerShell
Startseite
Commandlet-Referenz
Codebeispiele
Commandlet Extensions
Versionsgeschichte
Schulungen+Beratung
Windows
Startseite
Windows Runtime (WinRT)
Windows PowerShell
Windows Scripting
Windows-Schulungen
Windows-Lexikon
Windows-Forum
Scripting
Startseite
Lexikon
FAQ
Bücher
Architektur
Skriptsprachen
Scripting-Hosts
Scripting-Komponenten
COM/DCOM/COM+
ADSI
WMI
WMI-Klassenreferenz
Scripting-Tools
WSH-Editoren
Codebeispiele
.NET-Scripting
Forum
Schulung & Beratung
Nutzer
Anmeldung/Login
Buchleser-Registrierung
Gast-Registrierung
Hilfe
Website-FAQ
Technischer Support
Site Map
Tag Cloud
Suche
Kontakt
Erklärung des Begriffs: Windows Forms (WinForms)
Begriff
Windows Forms
Abkürzung
WinForms
Eintrag zuletzt aktualisiert am
19.02.2025
Zur Stichwortliste unseres Lexikons
Was ist
Windows Forms
?
Windows Forms (oft abgekürzt mit WinForms) ist die älteste Desktop-Oberflächenbibliothek in .NET, die im klassischen .NET Framework-Setup, aber auch in den modernen .NET-Versionen in der .NET Desktop Runtime noch enthalten ist und dort auch weiterhin verbessert wird.
Windows Forms basiert auf der klassischen Windows-Programmierschnittstelle (Win32
API
). Man kann Windows Forms als eine
Wrapper
-Bibliothek verstehen für im Windows-Betriebssystem vorhandene Fenstertechniken und
Steuerelement
e. Zusätzlich wird in Windows Forms
GDI+
für die Grafikdarstellung verwendet (z. B. Zeichnen von Formen, Rendern von Text und Bildern).
Werkzeuge
Es gibt innerhalb der
Entwicklungsumgebung
Visual Studio
einen mächtigen
WYSIWYG
-Designer für Windows Forms-Oberflächen. Der Designer erzeugt aber nicht, wie heute in
GUI
-Frameworks üblich, eine Markup-Sprache, sondern einen Programmcode in C# oder
Visual Basic .NET
. Entwicklerinnen und Entwickler, die die Oberfläche lieber durch Eintippen statt Klicken erstellen wollen, können den
GUI
-Programmcode selbst schreiben, das ist aber aufwändig und fehleranfällig. Daher ist der Einsatz des Designers Usus.
Design
Windows Forms-Anwendungen mit reinen Bordmitteln wirken aus heutiger Design-Sicht optisch altbacken. Die Anpassung des Designs der
Steuerelement
e ist grundsätzlich möglich, aber in der Implementierung oft sehr aufwändig. Es gibt aber einige kommerzielle
Steuerelement
anbieter, die zahlreiche Windows Forms-
Steuerelement
e mit modernem Look & Feel und Anpassbarkeit durch Theming anbieten.
Steuerelement
e
Microsoft liefert in Windows Forms einige Basissteuerelemente mit, aber höherwertige
Steuerelement
e wie
Wizard
s, Ribbons, Karusselle, Docking Manager, Diagramme, Tabellenkalkulationen, Kalender, Berichte, PDF-Viewer u.a. muss man kaufen bei
Komponente
nanbietern wie DevExpress, Syncfusion, Telerik, Infragistics und Component One (siehe Tabelle). Microsoft sieht sich selbst als Anbieter der Basisinfrastruktur und hat keinerlei Bestrebungen, höherwertige
Steuerelement
e anzubieten. Das gilt nicht nur für Windows Forms, sondern für alle
GUI
-Frameworks von Microsoft.
Ausgewählte kommerzielle
GUI
-
Komponente
nanbieter für Windows Forms
DevExpress WinForms Component Subscription
https://www.devexpress.com/products/net/controls/winforms
/
Telerik UI for WinForms
https://www.telerik.com/products/winforms.aspx
Syncfusion WinForms UI Controls Library
https://www.syncfusion.com/winforms-ui-controls
MESCIUS (vormals GrapeCity) ComponentOne Studio for WinForms
https://www.grapecity.com/componentone/net/winforms
Infragistics Ultimate UI for Windows Forms
https://www.infragistics.com/products/windows-forms
Text Control TX Text Control .NET
https://www.textcontrol.com/products/
Xceed Grid, Chart, Editors, Input
Validator
, Docking
Windows
https://xceed.com/products/winforms-activex/
Actipro Windows Forms Controls
https://www.actiprosoftware.com/products/controls/windowsforms
Windows Forms im klassischen .NET Framework
Windows Forms wurde in
.NET Framework 1.0
(erschienen am 13. Februar 2002) eingeführt und bekam in
.NET Framework 2.0
einen großen Schub durch zahlreiche neue und verbesserte
Steuerelement
e. Windows Forms wurde im klassischen .NET Framework aber seitdem nicht mehr wesentlich weiterentwickelt, da Microsoft mit
.NET Framework 3.0
die
Windows Presentation Foundation
(WPF) als Alternative eingeführt hat.
Windows Forms im modernen .NET
Am 23. September 2019 erschien Windows Forms dann aber im Rahmen von
.NET Core 3.0
auch für das moderne .NET [
https://www.heise.de/hintergrund/Umstieg-auf-NET-Core-Desktop-Anwendungen-mit-WPF-und-Windows-Forms-umstellen-4640058.html
], läuft aber trotz der grundsätzlichen Plattformunabhängigkeit von .NET Core auch damit nur auf Windows. In
.NET Core 3.1
hat Microsoft einige ältere Windows Forms-
Steuerelement
e ausgebaut, obwohl es diese in
.NET Core 3.0
schon gab [
https://www.heise.de/blog/NET-Core-3-1-ist-ein-ungewoehnliches-Release-4612970.html
]. Das war ein Verstoß gegen das Semantic Versioning, für den Microsoft sich aber entschuldigte [
https://devblogs.microsoft.com/dotnet/announcing-net-core-3-1/
]. Beweggrund für diese unerlaubten Breaking Changes war, dass Microsoft es sich bei der Portierung des Windows Forms-Designers für
Visual Studio
einfacher machen wollte. Die entfernten
Steuerelement
e sind alles
Steuerelement
e, die in
.NET Framework 1.0
eingeführt wurden und für die es ab
.NET Framework 2.0
bessere Alternativen gab. Weitere ältere
Steuerelement
e sind in
.NET 5.0
entfallen
https://docs.microsoft.com/en-us/dotnet/core/compatibility/windows-forms/5.0/winforms-deprecated-controls;
dies stellte aber dann jedoch keinen Bruch gegen die Regeln des Semantic Versioning dar. Eine Migration einer Windows Forms-Oberfläche vom klassischen .NET Framework zum modernen .NET ist sehr unaufwändig, sofern man nicht die älteren
Steuerelement
e verwendet, die entfallen sind.
Migration einer Windows Forms-Oberfläche vom klassischen .NET Framework zum modernen .NET
Eine Migration einer Windows Forms-Oberfläche vom klassischen .NET Framework zum modernen .NET ist sehr unaufwändig, sofern man nicht die älteren
Steuerelement
e verwendet, die entfallen sind.
Windows Forms auf anderen Plattformen
Die Windows Forms-Implementierung im Rahmen von Microsoft .NET läuft nur auf Windows, auch im modernen, plattformneutralen .NET. Es gibt auch eine plattformneutrale Implementierung von Windows Forms im Rahmen des Mono-Projekts. Mono ist eine Nachimplementierung des klassischen .NET Frameworks einschließlich Windows Forms und
ASP.NET
Model View Controller (
MVC
).
Im Rahmen von "
One .NET
" nicht aus Mono in das moderne .NET übernommen wurde das plattformneutrale Windows Forms. Allerdings hat das Wine-Projekt die alte Mono-Implementierung übernommen
https://gitlab.winehq.org/wine-mono/mono.
Die meisten Teile der Windows Forms-Implementierung sind seit Jahren nicht mehr angefasst worden, aber es gibt immer mal wieder einzelne kleinere Beiträge im Repository
https://gitlab.winehq.org/mono/mono/-/tree/main/mcs/class/
System.Windows.Forms
Verbreitung von Windows Forms
In Deutschland und weltweit arbeiten immer noch viele Entwicklerinnen und Entwickler an Windows Forms-Anwendungen. Dies sind aber primär bestehende Anwendungen. Neuentwicklungen mit Windows Forms sind selten und finden hauptsächlich in Entwicklungsteams statt, die bisher schon mit Windows Forms arbeiten. Diese Zielgruppe will Microsoft mit den neuen Features in Windows Forms fördern.
Namensraum
Die Windows Forms werden im
FCL
-Namensraum
System.Windows.Forms
bereitgestellt. In der Beta-Version des .Net Framework 1.0 hieß der Namensraum noch System.WinForms. Daher sprechen auch heute noch viele Entwickler kurz von "WinForms".
Standardisierung
Windows Forms gehören zu den Teilen der
.NET Framework Class Library
, die nicht Teil des
ISO
- und
ECMA
-Standards "CLI" sind.
Vergleich zu
Java
Pendants zu Windows Forms in
Java
sind Bibliothek wie das Abstract Window Toolkit (
AWT
), Swing und
Standard Widget Toolkit
(
SWT
).
Deployment von Windows Forms-Anwendungen
Beim Verteilen von fertigen Anwendungen muss man zwischen klassischen .NET Framework und modernem .NET unterscheiden. Beim klassischen .NET Framework hat man immer ein sogenanntes Framework Dependent Deployment (
FDD
): Bevor man die WPF-Anwendung verteilen kann, muss das .NET Framework installiert werden. Das
FDD
gibt es auch noch im modernen .NET. Alternativ können Entwicklerinnen und Entwickler eine Self-Contained-App kompilieren, die alle benötigen Teile der Laufzeitumgebung und alle benötigen Teile der Kernbibliothek mitbringt. Die Verbreitung von Windows Forms-Anwendungen erfolgt über Installationsverfahren wie
ClickOnce
, MSI,
MSIX
, Microsoft Store, InstallShield, Inno Setup, Chocolatey,
WinGet
etc.
Neuerungen in Windows Forms in
.NET Core 3.0
Application.SetHighDpiMode(HighDpiMode.PerMonitorV2)
Neuerungen in Windows Forms in
.NET 5.0
Neues
Steuerelement
: TaskDialog = ausgebaute Messagebox
ListView
mit zusammenklappbaren Gruppen
FileDialog mit mehrfach-Zustand via ClientGuid
Verbesserungen für UI-Automation
Neuerungen in Windows Forms in
.NET 6.0
Windows Forms auf Windows Arm64
Application.SetDefaultFont()
Designer Hosting (wie in .NET Framework)
Neuerungen in Windows Forms in
.NET 7.0
Unterstüzuung für
Model-View-ViewModell
(
MVVM
) insbesondere durch Icommand
Neuerungen in Windows Forms in
.NET 8.0
MVVM
nun offiziell stabil
Neuerungen in Windows Forms in
.NET 9.0
Dark Mode
Mehrfachauswahl im
Steuerelement
FolderBrowserDialog
Das Control-
Steuerelement
, von dem alle
Steuerelement
e in Windows Forms und auch das Formular als solches erbt, besitzt nun eine
Methode
InvokeAsync() zur einfachen Ausführung asynchroner Aufgaben.
Weitere Ressoucen auf dieser Website
Referenzliste Softwarekomponenten für das .NET Framework (Produktreferenz)
Querverweise zu anderen Begriffen im Lexikon
Windows Presentation Foundation (WPF)
.NET Framework Class Library (FCL)
Standard Widget Toolkit (SWT)
Model-View-ViewModell (MVVM)
System.Windows.Forms
Entwicklungsumgebung
.NET Framework 1.0 (.NET 1.0)
.NET Framework 3.0 (.NET 3.0)
.NET Framework 2.0 (.NET 2.0)
Visual Basic .NET (VB.NET)
Visual Studio (VS)
Steuerelement
.NET Core 3.0
.NET Core 3.1
Komponente
ClickOnce
Validator
.NET 8.0 (.NET 8)
.NET 7.0 (.NET 7)
.NET 6.0 (.NET 6)
.NET 5.0 (.NET 5)
One .NET
.NET 9.0 (.NET 9)
ListView
Methode
Wrapper
Wizard
Java
What You See Is What You Get (WYSIWYG)
Active Server Pages .NET (ASP.NET)
Windows Package Manager (WinGet)
European Computer Manufacturers Association (ECMA )
MSIX Windows Application Packaging (MSIX)
Graphics Device Interface+ (GDI+)
Model-View-ViewModell (MVVM)
Mode-View-Controler Framework (MVC)
Framework-dependent Deployment (FDD)
International Standardization Organization (ISO)
Application Programming Interface (API)
Framework Class Library (FCL)
Abstract Windowing Toolkit (AWT)
Standard Widget Toolkit (SWT)
Graphical User Interface (GUI)
Beratung & Support
Beratung/Consulting: Umstellung/Migration/Umstieg von Windows Forms-Anwendungen von .NET Framework auf .NET 6.0/.NET 7.0
Beratung/Consulting: Umstellung/Migration/Umstieg von .NET Framework auf .NET 6.0/7.0
Beratung/Consulting: Benutzerschnittstellentechnik auswählen (UI-/Frontend-Techniken)
Anfrage für Beratung/Consulting zu Windows Forms WinForms
Gesamter Beratungsthemenkatalog
Technischer Support zum Windows Forms WinForms
Schulungen zu diesem Thema
Windows-Desktop-Anwendungen: Von den .NET- und C#-Grundlagen zu Windows Forms und Windows Presentation Foundation (WPF)
Windows-Anwendungen mit Windows Forms - Aufbauwissen
Windows-Anwendungen mit Windows Forms - Basiswissen
Neuerungen in .NET Core 3.0/3.1 gegenüber Version 2.x (inkl. ASP.NET Core, Entity Framework Core, WPF und Windows Forms)
Umstieg auf Windows Forms Core 8.0/9.0 in .NET 8.0/9.0 (Umstellung/Migration von Windows Forms-Anwendungen von .NET Framework auf .NET 6.0/7.0)
Neuerungen in Windows Forms 2.0
Hybride Anwendungen mit .NET und CefSharp (Einbindungen von Webanwendungen in WPF- und Windows Forms-Desktopanwendungen)
Umstieg von .NET-Desktop-Entwicklung (WPF/Windows Forms) auf Webentwicklung (ASP.NET/ASP.NET Core + JavaScript/TypeScript mit Webframeworks wie Angular, Vue.js oder React)
Microsoft 365 für Softwareentwickler (Microsoft 365 Development)
Visual Studio für Einsteiger
.NET-Überblick für .NET-Einsteiger und .NET-Entscheider (wahlweise für das klassische .NET Framework und/oder das moderne .NET)
.NET-/.NET Core-Entwickler-Update 2019
Visual Basic .NET für Umsteiger von VBA/VB 4/5/6
Entity Framework Core 8.0/9.0 (EF Core 8.0/9.0): Objekt-Relationales Mapping (ORM) für .NET 8.0/9.0 (komplettes Wissen)
Task Parallel Library (TPL) - Parallelprogrammierung/Multi-Threading in .NET/C#
Open Data Protocol (OData) mit WCF Data Services und/oder ASP.NET WebAPI und/oder RESTier
.NET und C# für Umsteiger von klassischem Visual Basic/COM
"End-to-End": Eine Best Practices-Softwarearchitektur für eine .NET-Anwendung von der Datenbank bis zur Benutzeroberfläche
.NET Akademie: Datenbankprogrammierung mit Entity Framework Core (3-Tages-Agenda des öffentlichen Seminars)
Multi-Threading in .NET mit C#/Visual Basic .NET und/oder C++ und C++/CLI
.NET Framework 3.5 Service Pack 1 und Visual Studio 2008 Service Pack 1
ASP.NET Webforms im Überblick - Weboberflächen mit .NET
Windows Application Packaging Projects (MSIX)
Visual Studio 2005 (Visual Studio 8.0 "Whidbey")
.NET-Basisklassenbibliothek (.NET Base Class Library)
Visual Studio Tipps & Tricks - Effizienter Programmieren mit Visual Studio
ADO.NET Entity Framework (EF) - Objekt-Relationales Mapping
.NET 9.0 - Änderungen und Neuerungen gegenüber .NET 8.0
Moderne Web-Anwendungen mit Blazor (Blazor United und/oder Blazor SSR und/oder Blazor WebAssembly und/oder Blazor Server und/oder Blazor Hybrid)
Umstieg auf .NET 8.0/9.0 - Entwicklerworkshop mit allen Anwendungsgebieten (Umstellung/Migration von klassischem .NET Framework zu .NET 6.0/8.0/9.0)
Anfrage für eine individuelle Schulung zum Thema Windows Forms WinForms
Gesamter Schulungsthemenkatalog
Bücher zu diesem Thema
Alle unsere aktuellen Fachbücher
E-Book-Abo für ab 99 Euro im Jahr