7.3 Symbolleiste
Die Symbolleisten eines Programms enthalten die am häufigsten benötigten Menübefehle. Wenn Sie also benutzerfreundlich programmieren, haben diese immer eine Entsprechung im Hauptmenü. In ihrem Aufbau ähneln sie dem Hauptmenü bzw. dem Kontextmenü.
7.3.1 Erstellung der Symbolleiste

Zur Erstellung einer Symbolleiste wird das Steuerelement ToolStrip aus der Toolbox auf das Formular gezogen. Es erscheint sowohl im Formular als auch unterhalb des Formulars. Die Symbolleiste kann durch Auswahl von Symbolen verschiedener Typen (Button, ComboBox, Separator, ...) aus einer Auswahlliste gefüllt werden, siehe Abbildung 7.9.
Abbildung 7.9 Symbolleiste mit Button und ComboBox
Über die Eigenschaft Image können Sie das Aussehen eines Symbols vom Typ Button bestimmen. Bei dieser Eigenschaft kann ein Dialogfeld aufgerufen werden.
In diesem Dialogfeld Ressource auswählen können Sie über den Button Importieren eine Bilddatei auswählen, z. B. in der Größe 16 × 16 Pixel, siehe Abbildung 7.10. Dieses Bild wird auf dem Symbol-Button abgebildet, siehe Abbildung 7.11.
Abbildung 7.10 Ausgewähltes Bild für die Eigenschaft »Image«
Abbildung 7.11 Ausgewähltes Bild auf Symbol-Button
7.3.2 Code der Symbolleiste
Das nachfolgende Projekt MenüSymbol ist wiederum eine Erweiterung des Projekts MenüKontext. Der Benutzer hat folgende zusätzliche Möglichkeiten:
- Er kann den Schriftstil des Labels über zwei Symbole auf Fett bzw. Kursiv ändern.
- Er kann die Schriftgröße nicht nur über eine ComboBox im Hauptmenü, sondern auch über eine ComboBox in der Symbolleiste ändern.
Es folgen die geänderten Teile des Programms:
Public Class Form1
Private Sub Form1_Load(...) Handles MyBase.Load
[...]
cboSymSchriftgröße.Items.Add("8,25")
cboSymSchriftgröße.Items.Add("10")
cboSymSchriftgröße.Items.Add("13")
cboSymSchriftgröße.Items.Add("18")
cboSymSchriftgröße.SelectedIndex = 0
End Sub
[...]
Private Sub mnuFett_Click(...
) Handles mnuFett.Click,
conLblFett.Click, symFett.Click
[...]
symFett.Checked = Not symFett.Checked
End Sub
Private Sub mnuKursiv_Click(...
) Handles mnuKursiv.Click, symKursiv.Click
[...]
symKursiv.Checked = Not symKursiv.Checked
End Sub
Private Sub cboSchriftgröße_TextChanged(...
) Handles cboSchriftgröße.TextChanged,
cboSymSchriftgröße.TextChanged
Dim schriftgröße As Single
If ReferenceEquals(sender, cboSchriftgröße) Then
Try
schriftgröße =
Convert.ToDouble(
cboSchriftgröße.Text)
Catch ex As Exception
schriftgröße = 8.25
End Try
cboSymSchriftgröße.Text = schriftgröße
Else
Try
schriftgröße =
Convert.ToDouble(
cboSymSchriftgröße.Text)
Catch ex As Exception
schriftgröße = 8.25
End Try
cboSchriftgröße.Text = schriftgröße
End If
lblA.Font = New Font(lblA.Font.FontFamily,
schriftgröße, lblA.Font.Style)
End Sub
[ ... ]
End Class
Listing 7.7 Projekt »MenüSymbol«
Zur Erläuterung:
- Zu Beginn des Programms, also beim Laden des Formulars, werden beide ComboBoxen mit den gleichen Werten gefüllt.
- Die Methode mnuFett_Click() reagiert jetzt auf die Betätigung von drei Elementen: den Hauptmenüpunkt Fett, den Label-Kontextmenüpunkt Fett und das Symbol Fett. In allen drei Fällen wird der Schriftstil eingestellt und der geänderte Zustand gekennzeichnet, siehe Abbildung 7.12. In den ersten beiden Fällen geschieht dies durch das Setzen bzw. Wegnehmen des Häkchens, im Fall des Symbols durch eine visuelle Hervorhebung des Buttons.
Abbildung 7.12 Symbolleiste, Button »Fett«, hervorgehoben
- Bei der Methode mnuKursiv_Click() sieht es ähnlich aus wie bei der Methode mnuFett_Click().
- Auch die Änderung der Schriftgröße über eine der beiden ComboBoxen führt zur selben Prozedur: cboSchriftgröße_TextChanged(). Es ist wichtig, dass Sie die Schriftgröße, die in der jeweils anderen ComboBox markiert wird, ebenfalls ändern.
- Zu diesem Zweck müssen Sie zunächst ermitteln, bei welchem Objekt das Ereignis ausgelöst wurde. Ein Verweis auf das betreffende Objekt wird der Ereignisprozedur im Parameter sender übermittelt. Die statische Methode ReferenceEquals() der Klasse Object kann ermitteln, ob zwei Objektreferenzen auf dasselbe Objekt verweisen.
- Ermittelt die Methode, dass der Sender die ComboBox aus dem Hauptmenü ist, so wird der dort eingestellte Wert übernommen und bei der ComboBox in der Symbolleiste eingestellt. Ermittelt die Methode, dass der Sender die ComboBox in der Symbolleiste ist, so wird der dort eingestellte Wert übernommen und bei der ComboBox aus dem Hauptmenü eingestellt. Anschließend wird in jedem Fall die Eigenschaft Schriftgröße des Labels geändert, siehe Abbildung 7.13.
Abbildung 7.13 Symbolleiste, Schriftgröße geändert
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.