Konsolenanwendungen sind Dialoganwendungen, die immer mit dem Anwender im Dialog stehen. Konsolenanwendungen erwarten immer eine Eingabe (z.B. Zeichen, Text, Tastenkombination, …) und führ eine entsprechende Aktion aus.
Im Gegensatz dazu sind Windows Forms ereignisgesteuert. Das Ereignis ist dabei immer mit einem Objekt (z.B. TextBox, Button, Form, …) gekoppelt.
Für jedes Objekt gibt es eine Reihe verschiedener Ereignisse, die vordefiniert sind. Prinzipiell können auch eigene Ereignisse programmiert werden.
Windows Forms lassen sich manuell in C# erzeugen. Dazu muss der Namespace System.Windows.Forms eingebunden werden.
Es können eigene Klassen generiert werden, die die Eigenschaften von bestehenden Klassen erben und dann verändert bzw. erweitert werden. Die Objekte der eigenen Klasse werden mit dem Präfix this. angegeben.
Durch die Auswahl des richtigen Projekttyps in Visual Studio lassen sich auch direkt Windows Forms erzeugen. Dabei wird erforderlicher Rahmencode von Visual Studio im Hintergrund generiert.