Spezielle Schaltflächen
(Um-)Schaltflächen einfügen
Anders als Sie vielleicht vermuten, handelt es sich bei den hier eingesetzten Schaltflächen nicht um die üblicherweise verwendeten Befehlsschaltflächen. Diese werden nämlich angeklickt und springen dann wieder in den optisch ungeklickten Zustand zurück.
Da es sich bei der Formatierung um ein Umschalten (z.B. Fett ein/aus) handelt, sollten Sie auch die passenden Umschaltfelder (engl. toggle buttons) benutzen. Sie sehen gleich aus, verhalten sich aber anders. Wenn ein Benutzer diese anklickt, bleiben sie gedrückt. Erst mit dem nächsten Klick springen sie wieder heraus.
Fügen Sie also auf Ihrem Dialog-Entwurf neben einem Eingabefeld das gewünschte Paket an (Um-!)Schaltflächen ein, die hier tglFett, tglKursiv und tglUnterstrichen heißen.
Entwurf des übersichtlichen Dialogs
Es ist egal, in welcher Höhe die Schaltflächen liegen, denn diese wird durch das benutzerseitige Aktivieren eines Eingabefelds ja zukünftig immer angepasst. Wie bei Symbolleisten üblich, können Sie auch die formatierte Beschriftung der Schaltfläche ihrer Funktion anpassen. Außerdem sollten Sie in deren ControlTipText-Eigenschaft im Klartext ihre Funktion nennen.
Unterstrich funktioniert nicht?
Wenn Sie die Beschriftung der letzten Schaltfläche mit der Font-Eigenschaft auf Unterstrichen ändern, werden Sie wahrscheinlich keine Unterstreichung sehen. Da der Unterstrich sonst nicht zu sehen ist, müssen Sie deren Höhe von normalerweise 18 auf mindestens 19 erhöhen.
Damit die Schaltflächen nun neben dem aktiven Eingabefeld stehen, muss deren Top-Eigenschaft nur den gleichen Wert haben wie diejenige des Eingabefelds. Der Code für HoleButtons erweitert sich also:
Private Sub HoleButtons()
m_strNameAktiv = Mid(Me.ActiveControl.Name, 4)
Set m_ctlEdit = Me.Controls("edt" & m_strNameAktiv)
With Me.tglFett
.Top = m_ctlEdit.Top
End With
With Me.tglKursiv
.Top = m_ctlEdit.Top
End With
With Me.tglUnterstrichen
.Top = m_ctlEdit.Top
End With
End SubSie können den Dialog jetzt schon mit F5 starten und prüfen, ob die Schaltflächen ihre Position anpassen.
