Visual Basic .NET: Windows Forms mit SharpDevelop

Achtung! Das hier ist noch eine ganz große Baustelle, die sich aus der Umstellung der Abschnitte 1 und 2 auf Konsolenanwendungen ergab. Das Ganze hier wird von mir bald strukturiert. -- Stefan M. aus D. - Bewertet mich! 14:33, 17. Dez. 2006 (CET)


Um einer alten Programmiertradition zu folgen, ist unser erstes Projekt ein Hello World-Programm. Ein solches Programm gibt lediglich Hello World aus. Diese Programme dienen seit Urzeiten in Lehrbüchern einmal als Test für den Lernenden, um sich mit der Programmierumgebung vertraut zu machen und zu prüfen, ob alles funktioniert. Andererseits zeigen Sie die notwendige Grundstruktur eines Programmes auf.

  • Klicken Sie auf der Startseite auf Neue Solution. Wählen Sie links VBNet > Windowsanwendungen und links Windows-Anwendung aus. Unter Name geben Sie einen Namen für diese Solution an, etwa Test oder Hello World. Als Verzeichnis belassen Sie entweder die Standardeinstellung oder geben einen Pfad an, in dem Sie Ihre Programmierprojekte speichern wollen, etwa C:\Eigene Dateien\Meine Programme. Schließen Sie diesen Dialog mit einem Klick auf Erstellen. Das Projekt wird erstellt und das Dokument MainForm.vb geöffnet. Sie sollten den folgenden, automatisch generierten Code sehen.

Crystal128-terminal.svg Code:  

Public Partial Class MainForm
    Public Sub New()
        ' The Me.InitializeComponent call is required for Windows Forms designer support.
        Me.InitializeComponent()
        '
        ' TODO : Add constructor code after InitializeComponents
        '
    End Sub
End Class
  • SharpDevelop hat für Sie ein Formular erstellt. Formulare sind die Fenster auf dem Windows-Desktop. Dieses Formular wurde MainForm genannt, da es das Hauptformular ist. Der Quelltext, den Sie hier sehen, dient dazu, das Formular zu erstellen, sodass es auf dem Desktop angezeigt werden kann.
    Beachten Sie, dass bestimmte Abschnitte des Codes farbig sind. Diese Funktion heißt Syntaxhervorhebung. Blaue Wörter sind zum Beispiel Begriffe, die im Code eine besondere Bedeutung haben. Dazu später mehr.
  • Das Formular können Sie gleich ausprobieren, indem Sie in der Symbolleiste oben auf das grüne, nach rechts zeigende Dreieck klicken. Das Projekt wird dann erstellt, d.h. der bereits vorhandene Code wird in den .NET-Zwischencode übersetzt, dann wird dieser ausgeführt. Es erscheint ein Fenster. Schließen Sie das Fenster und beenden damit das Programm, kehrt SharpDevelop, dass sich im Hintergrund quasi stummgeschaltet hatte, wieder in den normalen Modus zurück.
  • Unterhalb der Dokumentenansicht befinden sich zwei Register, Quellcode und Design. Quellcode zeigt eben den Code des jeweils ausgewählten Formulars an, so wie SharpDevelop es gerade tut. Klicken Sie auf Design, um den Quellcodeeditor zu schließen und den Formularentwurf zu öffnen. Hier können Sie das Aussehen des jeweiligen Formulars ändern. Das ist aber jetzt noch nicht von Belang.
  • Doppelklicken Sie nun auf das dargestellte Formular. (Warum das Formular gepunktet ist, sehen wir später.) SharpDevelop wechselt wieder in die Codeansicht und fügt einigen Code hinzu.

Crystal128-terminal.svg Code:  

Public Partial Class MainForm
    Public Sub New()
        ' The Me.InitializeComponent call is required for Windows Forms designer support.
        Me.InitializeComponent()
        '
        ' TODO : Add constructor code after InitializeComponents
        '
    End Sub

    Sub MainFormLoad(sender As Object, e As System.EventArgs)

    End Sub
End Class
  • Was ist passiert? Dazu muss ich ein bisschen ausholen: Aktionen eines Programms werden ausgelöst durch Ereignisse. Windows verschickt intern Nachrichten an das Programm, um sie auf ein Ereignis aufmerksam zu machen. Die Nachrichten enthalten auch meist Informationen, die das Ereignis genauer beschreiben, z.B. enthält ein Mausklickereignis Informationen über den Punkt, auf den geklickt wurde. Erhält das Programm eine Nachricht, so wird, sofern vorhanden, Code ausgeführt, der diesem Ereignis zugeordnet wurde. Hier hat SharpDevelop nun Code für die Behandlung des Load-Ereignisses eingefügt, das auftritt, wenn das Formular MainForm geladen wird (daher MainFormLoad). Zwischen diesen Zeilen können wir nun Code einfügen, der ausgeführt wird, wenn das Ereignis auftritt.
  • Fügen Sie zwischen den Zeilen Sub MainFormLoad ... und End Sub den folgenden Befehl ein.

Crystal128-terminal.svg Code:  

System.Windows.Forms.MessageBox.Show("Hello world.", "Test")
  • Wie Ihnen unweigerlich auffallen wird, erscheint, nachdem Sie den ersten Punkt eingegeben haben, ein Menü mit vielen englischen Begriffen. Hier bietet SharpDevelop Möglichkeiten an, die Zeile logisch zu beenden. Probieren Sie dieses Menü noch einmal aus, indem Sie die eben eingefügte Zeile löschen und neu eintippen. Nach dem ersten Punkt können Sie mit den Pfeiltasten oder der Maus durch das Menü blättern. Achten Sie auch auf die erscheinenden Erklärungen.
    Die Wörter in Anführungszeichen sind Zeichenketten, die im Programm erscheinen, wie wir gleich sehen. SharpDevelop hebt diese, anders als z.B. Microsoft Visual Basic oder dieses Wikibook, nicht farblich hervor.
  • Fügen Sie jedoch zuerst hinter der eben eingegebenen eine weitere ein, in die Sie nur "End" schreiben. So sollte das Ergebnis unserer ersten Programmieraktion dann aussehen.

Crystal128-terminal.svg Code:  

Public Partial Class MainForm
    Public Sub New()
        ' The Me.InitializeComponent call is required for Windows Forms designer support.
        Me.InitializeComponent()
        '
        ' TODO : Add constructor code after InitializeComponents
        '
    End Sub

    Sub MainFormLoad(sender As Object, e As System.EventArgs)
        System.Windows.Forms.MessageBox.Show("Hello world.", "Test")
        End
    End Sub
End Class
  • Klicken Sie in der Symbolleiste oben erneut auf das grüne Dreieck, um das Programm zu erzeugen (dieser Vorgang heißt in der Fachsprache kompilieren, entsprechend ist das ausführende Programm ein Compiler). Ist dies geschehen, startet das Programm, diesmal wird jedoch nicht das Fenster aus der Entwurfsansicht angezeigt, sondern eine Meldung mit dem Titel Test und dem Inhalt Hello world. (Hier sind die Zeichenketten wieder.) Die Erklärung finden Sie im nächsten Kapitel.
  • Zunächst jedoch wollen Sie sicherlich (wenn auch nur zu Übungszwecken) den Code bzw. das gesamte Projekt speichern. Das Projekt erhält die erforderlichen Informationen sowie Verweise auf die Dateien, in denen der Code enthalten ist. Ein Projekt ergibt beim Kompilieren immer genau ein Programm, sprich eine .exe-Datei. Um das Projekt zu speichern, klicken Sie in der Symbolleiste auf den Diskettenstapel.