Die Community zu .NET und Classic VB.
Menü

Formulardesign

 von 

Übersicht 

Dieser Artikel soll eine Hilfestellung zum guten Formulardesign darstellen.

Mit freundlichen Grüßen
Herfried K. Wagner,

Grundlegende Hinweise  

  • Verwenden Sie nicht zu viele verschiedene Schriftarten, wenn Sie ausgefallene Schriftarten verwenden, sollten Sie diese mit Ihrer Anwendung ausliefern.
  • Steuerelemente sollten nach Möglichkeit Standardfarben haben, damit auch bei einem Benutzer mit geringerer Farbanzahl die grafischen Effekte vorhanden bleiben.

    Sie können beispielsweise beim Starten der Anwendung die Farbanzahl des Benutzers ermitteln und anschliessend die entsprechenden Grafiken aus einer Ressourcen-Datei laden (Windows-Ressourcen-Dateien .res können Sie mit dem Microsoft Ressourcen-Compiler rc.exe kompilieren oder mit Visual C++ erstellen, modifizieren und als Ressourcen-Vorlage .rc oder als kompilierte 32Bit Ressourcendatei .res abspeichern).

  • Ein Label mit Rahmen und weissem Hintergrund könnte den User verunsichern, da es leichter mit einer TextBox verwechselt werden kann.
  • Sie sollten bei Label-Steuerlementen darauf verzichten, die BorderStyle-Eigenschaft auf 1 (Fest Einfach) zu setzten, das Programm belegt dann mehr Arbeitsspeicher.
  • Verwenden Sie so wenig Steuerelemente wie möglich und ersetzen Sie nach Möglichkeit TextBoxen durch Labels und PictureBoxen durch Image-Steuerelemente, dadurch wird nicht so viel Arbeitsspeicher von Ihrer Anwendung beansprucht. Ausserdem sind dadurch leichter transparente Grafiken möglich.
  • Wenn die Grösse eines Formulars nicht geändert werden können soll, stellen Sie die Eigenschaft BorderStyle von 2 (Änderbar) auf 1 (fest einfach).
  • Reduzieren Sie die Anzahl an angezeigten und geladenen Formularen auf ein Mindestmass. Um ein Formular zu entladen, verwenden Sie die Unload-Methode am besten mit Set frmName = Nothing in der Unload Prozedur. Dadurch wird das Formular aus dem Arbeitsspeicher entfernt. Im Gegensatz dazu dient die Hide-Methode nur zum Verstecken der Form - die auf der Form eingegebenen Daten (z.B. in TextBoxen) bleiben erhalten.

Formularsymbol [Icon]  

Das Icon (Symbol) eines Formulars wird links oben in der Titelleiste des Formulars und, falls das Formular in der Taskleiste enthalten ist, links neben der Beschriftung des Task-Buttons, angezeigt. Durch Klick auf dieses Icon wird das zum Formular gehörende Systemmenü angezeigt.

Standardmässig ist unter VB das Formular-Symbol als Icon eingestellt. Sie können auch ein eigenes Icon unter der Eigenschaft Icon einstellen, indem Sie eine gültiges Icon .ico oder eine Cursor-datei .cur wählen. Dabei sollten Sie folgende Hinweise beachten:

  • Unter Projekteigenschaften können Sie das Anwendungssymbol auswählen. Bei diesem Symbol muss es sich um das Icon eines Formulars handeln. Es ist daher vorteilhaft, beim Formular, welches das künftige Programmsymbol (Icon der .exe) enthalten soll, ein Icon zu wählen, welches nach Möglichkeit sowohl ein Icon der Grösse 32 x 32 Pixel als auch ein Icon der Grösse 16 x 16 Pixel enthält. Es besteht auch die Möglichkeit, ein Icon mit verschiedenen Farbqualitäten zu wählen.

    VB zeigt in der Titelleiste, sobald ein Icon ein 32 x 32 Pixel Symbol enthält, dieses verkleinert an, auch wenn sich ein 16 x 16 Pixel grosses Symbol in der Icon-Datei befindet. Aus diesem Grund kann es vorkommen, dass das Icon in schlechterer Qualität erscheint.

    Hinweis: Bei manchen Icons verwendet VB das Symbol mit der "richtigen" Grösse.


    Abbildung 1


    Abbildung 2

    In Abbildung 1 wurde ein Icon verwendet, welches nur ein Symbol für die Auflösung 16 x 16 Pixel enthält. Dieses Icon wird gut angezeigt. Daher sollten Sie bei Formularen, welche nicht das Anwendungssymbol enthalten, nur Icons mit 16 x 16 Pixel Auflösung verwenden.

    Abbildung 2 zeigt das Ergebnis, wenn ein Icon mit grossem und kleinem Symbol oder nur mit grossem Symbol verwendet wird. Das Icon wird unscharf dargestellt, da es von 32 x 32 Pixel verkleinert wird. Verwenden Sie das Icon mit den beiden Auflösungen als Anwendungssymbol. Sie können der Form dann zur Laufzeit ein passendes kleines Icon zuweisen:

    Sub Form_Load()
        Set Me.Icon = imgIcon16.Picture
        ' imgIcon16 ist ein verstecktes Image-Steuerelement
            ' (Visible = False) welches das Symbol enthält.
        ' Alternativ könnten Sie verwenden:
        '   Set Me.Icon = LoadPicture("icon16.ico")
        ' oder sie laden das Icon aus einer Ressourcen-Datei.
    End Sub

    Listing 1

  • Unter Windows 98 und Windows 2000 können auch Icons mit 256 Farben angezeigt werden. Wenn Sie Icons mit 256 Farben verwenden, werden diese unter Windows 95 mit 16 Farben angezeigt, was zu einem beträchtlichen Qualitätsverlust führt. Fügen Sie in die Icon-Datei auch für jede Auflösung ein alternatives 16-Farben Icon ein.
  • Um Ihre eigenen Icons zu erstellen, können Sie folgende Programme verwenden (Auswahl):

    • Imagedit: Suchen Sie nach imagedit.exe auf Ihrer VB-CD-ROM. Dieses Werkzeug kann nur Icons mit 16 Farben erstellen.
    • Visual C++: Im Microsoft Visual Studio enthalten, kann Symbole verschiedener Farbtiefe und Auflösung in eine Icon-Datei speichern.
  • Beachten Sie, dass alle in der .exe einkompilierten Icons, die aus einer Ressourcen-Datei stammen, beim Erstellen einer Verknüpfung als Verknüpfungssymbol verfügbar sind.
  • Wenn Sie bei einem Formular mit BorderStyle = Fest Einfach kein Icon festlegen, verwendet VB das Windows-Logo als Icon, bei einem festen Dialogfenster wird kein Platz für das Icon freigelassen.
  • Um zu testen, ob auf Ihrem System Visual Basic das 16 x 16 Pixel Icon für das Symbol in der Titelleiste verwendet, können Sie den folgenden Code verwenden. Das Beispiel zeigt, wie man ein 16 x 16 Pixel grosses Icon aus einer Ressourcen-Datei laden kann. Das Projekt muss kompiliert werden, damit die Funktionalität gegeben ist.

IconBugFix [7000 Bytes]

Systemmenü  

Das Systemmenü wird in jedem Formular angezeigt, dessen BorderStyle-Eigenschaft nicht auf 0 - vbBSNone eingestellt ist. Es erscheint entweder, indem man auf das Icon in der Titelleiste des Formulars klickt oder mit der rechten Maustaste auf die Titelleiste klickt, als Kontextmenü (es wird auch angezeigt, wenn man auf den zur Anwendung gehörenden Button in der Taskleiste klickt (dazu muss aber die ShowInTaskbar-Eigenschaft auf True eingestellt sein).

Das Systemmenü enthält normalerweise die Befehle für Schliessen, Maximieren, Minimieren, Wiederherstellen, Verschieben und Grösse ändern, je nach BorderStyle des Formulars und nach den Einstellungen für ControlBox und MinButton, MaxButton und Moveable können einige der Einträge wegfallen. Das Handle des Systemmenüs kann über die API-Funktion GetSystemMenu ermittelt werden. Das Systemmenü kann dann mit den APIs zum Modifizieren normaler Menüs verändert werden. Es können Menüeinträge hinzugefügt und entfernt werden.

ModifySystemMenu [6420 Bytes]

Formulartitel [Caption]  

  • Verwenden Sie keine Caption die länger ist, als das Formular breit ist, sie sollte maximal 40 Zeichen lang sein, beachten Sie, dass nur ca. 20 Zeichen auf dem Programmbutton in der Taskleiste Platz finden.
  • Legen Sie einen treffenden Ausdruck als Titel fest, der die Funktion des Formulars angibt: Eine Form, die zur Anmeldung an ein Netzwerk dient, könnte mit Netzwerkanmeldung beschriftet werden.
  • Der Formulartitel sollte keine Hinweise zum Autor des Programms und Copyrightinformationen enthalten. Dazu verwenden Sie einen eigenen Info-Dialog.
  • Schreiben Sie im Formulartitel nach Möglichkeit keine Wörter in Grossbuchstaben.

Rahmen [BorderStyle]  

Unter Visual Basic können Sie unter der Eigenschaft BorderStyle zwischen 6 Rahmentypen wählen. Diese Eigenschaft ist zur Laufzeit schreibgeschützt. d.h. es kann während das Programm ausgeführt wird nicht zwischen den einzelnen Einstellungsmöglichkeiten gewechselt werden.

0 - vbBSNone Kein (kein Rahmen oder ähnliche Elemente).
1 - vbFixedSingle Fest Einfach. Kann Systemmenüfeld, Titelleiste, Maximieren-Schaltfläche und Minimieren-Schaltfläche umfassen. Ändern der Grösse ist nur mit den Maximieren- und Minimieren-Schaltflächen möglich.
2 - vbSizable Änderbar (Voreinstellung). Mit jedem der für Einstellung 1 aufgeführten optionalen Rahmenelemente kann die Grösse des Rahmens verändert werden.
3 - vbFixedDouble Fester Dialog. Kann Systemmenüfeld oder Titelleiste umfassen, aber nicht die Maximieren- oder Minimieren-Schaltflächen. Grösse nicht änderbar.
4 - vbFixedToolWindow Festes Werkzeugfenster. Zeigt ein Fenster, dessen Größe nicht geändert werden kann, mit einer Schaltfläche Schließen und dem Titelleistentext in einer verkleinerten Schriftgrösse an. Das Formular wird nicht in der Taskleiste von Windows 95 angezeigt.
5 - vbSizableToolWindow Änderbares Werkzeugfenster. Zeigt ein Fenster, dessen Größe verändert werden kann, mit einer Schaltfläche Schliessen und dem Titelleistentext in einer verkleinerten Schriftgrösse an. Das Formular wird nicht in der Taskleiste von Windows 95 angezeigt.

Tabelle 1 : Borderstyle-Konstanten

Unter Visual Basic ist es mit normalen Mitteln nicht möglich, zur Laufzeit die Rahmenart (BorderStyle) eines Formulars zu ändern, diese Eigenschaft ist unter Visual Basic zur Laufzeit schreibgeschützt.

Hier bietet das Windows API (Application Programming Interface) mit der SetWindowLong-Funktion eine Möglichkeit, die Rahmenart zur Laufzeit zu ändern. Durch Kombination der einzelnen Parameter sind sogar 2D-Formulare möglich (nur ein dünner, durchgezogener, schwarzer Rahmen).

ChangeBorderStyle [1740 Bytes]

Mit den Eigenschaften MaxButton und MinButton ist es möglich, den Maximieren bzw. den Minimieren-Button des Formulars zu entfernen. Die ControlBox-Eigenschaft gibt an, ob Systemschaltflächen in der Titelleiste angezeigt werden sollen.

Moveable gibt an, ob die Position des Formulars zur Laufzeit geändert werden kann.


Abbildung 3: Ein zusätzlicher Button in der Titelleiste

TitleBarButton [2590 Bytes]

Bei vielen Formularen mit änderbarem Rahmen ist es notwendig, eine Minimal-und Maximalgrösse zu definieren, da sonst wichtige Steuerelemente oder Formularelemente entweder nicht sichtbar sind oder die Proportionen zwischen Formular und den Steuerelementen nicht mehr stimmen.

SizeMaxMin [2000 Bytes]

Bei manchen Formularen unter Windows 95+ wird im rechten unteren Eck ein Grössenänderungs-Dreieck, genannt Grabber, angezeigt. Dieses lässt sich unter Microsoft Visual Basic auch mit dem StatusBar-Steuerelement erzielen, welches in den Microsoft Common Controls enthalten ist. Dieses Dreieck kann auch ohne ein Steuerelement zu plazieren auf einem Formular eingefügt werden.

Grabber [8120 Bytes]

Titelleiste  

Über API kann einem Formular eine Titelleiste mit horizontalem Farbverlauf hinzugefügt werden.

GradientTitleBar [7590 Bytes]

Weiters kann auch der Inhalt einer PictureBox in die Titelleiste eines Formulars kopiert werden.

TitleBarPicture [1240 Bytes]

Ihre Meinung  

Falls Sie Fragen zu diesem Tutorial haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Borderstyle zur Laufzeit ändern - MaG 22.09.12 22:52 1 Antwort