Architektur des ToolStrip-Steuerelements
Die Klassen ToolStrip und ToolStripItem bieten ein flexibles, erweiterbares System für die Anzeige von Symbolleisten-, Status- und Menüelementen. Diese Klassen sind alle im System.Windows.Forms-Namespace enthalten und werden in der Regel mit dem Präfix „ToolStrip“ (z. B. ToolStripOverflow) oder mit dem Suffix „Strip“ (z. B. MenuStrip) benannt.
ToolStrip
Die folgenden Themen beschreiben ToolStrip und die Steuerelemente, die davon abgeleitet werden.
ToolStrip ist die abstrakte Basisklasse für MenuStrip, StatusStrip und ContextMenuStrip. Das folgende Objektmodell zeigt die ToolStrip-Vererbungshierarchie.
Sie können auf alle Elemente in einem ToolStrip über die Items-Sammlung zugreifen. Sie können auf alle Elemente in einem ToolStripDropDownItem über die DropDownItems-Sammlung zugreifen. In einer Klasse, die von ToolStrip abgeleitet ist, können Sie die DisplayedItems-Eigenschaft auch verwenden, um nur auf die Elemente zuzugreifen, die gerade angezeigt werden. Dies sind die Elemente, die sich derzeit nicht im Überlaufmenü befinden.
Die folgenden Elemente wurden speziell für die reibungslose Zusammenarbeit mit beiden ToolStripSystemRenderer und ToolStripProfessionalRenderer in allen Ausrichtungen entwickelt. Sie sind standardmäßig zur Entwurfszeit für das Steuerelement ToolStrip verfügbar:
MenuStrip
MenuStrip ist der Container auf oberster Ebene, der MainMenu ersetzt. Außerdem bietet es Features zur Handhabung von Schlüsseln und zur Schnittstelle für mehrere Dokumente (MDI). Funktionell arbeiten ToolStripDropDownItem und ToolStripMenuItem zusammen mit MenuStrip, obwohl sie von ToolStripItem abgeleitet sind.
Die folgenden Elemente wurden speziell für die reibungslose Zusammenarbeit mit beiden ToolStripSystemRenderer und ToolStripProfessionalRenderer in allen Ausrichtungen entwickelt. Sie sind standardmäßig zur Entwurfszeit für das Steuerelement MenuStrip verfügbar:
StatusStrip
StatusStrip ersetzt das Steuerelement StatusBar. Zu den besonderen Features von StatusStrip gehören ein benutzerdefiniertes Tabellenlayout, Unterstützung für die Dimensionierung des Formulars und bewegliche Griffe sowie die Spring
-Eigenschaft, die es einem ToolStripStatusLabel gestattet, den verfügbaren Platz automatisch zu füllen.
Die folgenden Elemente wurden speziell für die reibungslose Zusammenarbeit mit beiden ToolStripSystemRenderer und ToolStripProfessionalRenderer in allen Ausrichtungen entwickelt. Sie sind standardmäßig zur Entwurfszeit für das Steuerelement StatusStrip verfügbar:
ContextMenuStrip
ContextMenuStrip ersetzt ContextMenu. Sie können ContextMenuStrip einem beliebigen Steuerelement zuordnen, und das Kontextmenü wird automatisch durch Klicken mit der rechten Maustaste angezeigt. Sie können ein ContextMenuStrip programmgesteuert mithilfe der Methode Show anzeigen. ContextMenuStrip unterstützt abbrechbare Opening- und Closing-Ereignisse, um das dynamische Auffüllen und Szenarien mit mehreren Klickereignissen zu verarbeiten. ContextMenuStrip unterstützt Bilder, Aktivierungszustände von Menüelementen, Text, Zugriffsschlüssel, Tastenkombinationen und hierarchische Menüs.
Die folgenden Elemente wurden speziell für die reibungslose Zusammenarbeit mit beiden ToolStripSystemRenderer und ToolStripProfessionalRenderer in allen Ausrichtungen entwickelt. Sie sind standardmäßig zur Entwurfszeit für das Steuerelement ContextMenuStrip verfügbar:
Generische Features von ToolStrip
In den folgenden Themen werden Features und Verhaltensweisen beschrieben, die für ToolStrip und abgeleitete Steuerelemente allgemein gültig sind.
Zeichnen
Sie können auf verschiedene Weise in ToolStrip-Steuerelementen zeichnen. Wie bei anderen Windows Forms-Steuerelementen besitzen auch ToolStrip und ToolStripItem überschreibbare OnPaint
-Methoden und Paint
-Ereignisse. Wie beim normalen Zeichnen ist das Koordinatensystem relativ zum Clientbereich des Steuerelements, d. h. die linke obere Ecke des Steuerelements ist 0, 0. Das Paint
-Ereignis und die OnPaint
-Methode für ein ToolStripItem verhalten sich wie andere Ereignisse zum Zeichnen von Steuerelementen.
Die ToolStrip-Steuerelemente bieten auch einen differenzierteren Zugriff auf das Rendering der Elemente und des Containers über die Klasse ToolStripRenderer, die überschreibbare Methoden zum Zeichnen des Hintergrunds, des Elementhintergrunds, des Elementbilds, des Elementpfeils, des Elementtexts und des Rahmens von ToolStrip. Die Ereignisargumente für diese Methoden zeigen verschiedene Eigenschaften wie Rechtecke, Farben und Textformate an, die Sie nach Belieben anpassen können.
Wenn Sie nur einige Aspekte anpassen möchten, wie ein Element gezeichnet wird, setzen Sie in der Regel die Option ToolStripRenderer außer Kraft.
Wenn Sie ein neues Element erstellen und alle Aspekte des Bilds steuern möchten, setzen Sie die Methode OnPaint
außer Kraft. Sie können aus OnPaint
heraus Methoden von ToolStripRenderer verwenden.
Standardmäßig wird ToolStrip doppelt gepuffert und nutzt die Einstellung OptimizedDoubleBuffer.
Überordnung
Das Konzept von Containereigentum und -überordnung ist bei ToolStrip-Steuerelementen komplexer als bei anderen Windows Forms-Containersteuerelementen. Das ist erforderlich, um dynamische Szenarien zu unterstützen, z. B. Überlauf, Freigabe von Dropdownlisten für mehrere ToolStrip-Elemente und Generierung einer ContextMenuStrip-Instanz aus einem Steuerelement.
Die folgende Liste beschreibt Member, die sich auf die Überordnung beziehen und erläutert deren Verwendung.
OwnerItem greift auf das Element zu, das die Quelle des Dropdownelements darstellt. Dies ist ähnlich wie SourceControl, aber anstatt ein Steuerelement zurückzugeben, gibt es ein ToolStripItem zurück.
SourceControl bestimmt, welches Steuerelement die Quelle von ContextMenuStrip ist, wenn mehrere Steuerelemente dasselbe ContextMenuStrip teilen.
GetCurrentParent ist eine schreibgeschützte Zugriffsmethode für die Eigenschaft Parent. Ein übergeordnetes Element unterscheidet sich von einem Besitzer dadurch, dass ein übergeordnetes Element das zurückgegebene aktuelle ToolStrip bezeichnet, in dem das Element angezeigt wird, das sich im Überlaufbereich befinden kann.
Owner gibt die ToolStrip-Instanz zurück, deren Elementsammlung das aktuelle ToolStripItem enthält. Dies ist der beste Ansatz, um auf ImageList oder andere Eigenschaften der ToolStrip-Instanz auf der obersten Ebene zu verweisen, ohne speziellen Code zur Behandlung von Überläufen zu schreiben.
Verhalten geerbter Steuerelemente
Die folgenden Steuerelemente sind gesperrt, wenn sie in der Vererbung verwendet werden:
ToolStripPanel, das die Panel in einem ToolStripContainer und auch einzelne ToolStripPanel-Steuerelemente einbezieht.
Erstellen Sie z. B. eine neue Windows Forms-Anwendung mithilfe eines oder mehrerer der Steuerelemente aus der vorherigen Liste. Legen Sie den Zugriffsmodifizierer eines oder mehrerer Steuerelemente auf public
oder protected
fest, und erstellen Sie dann das Projekt. Fügen Sie ein Formular hinzu, das von dem ersten Formular erbt, und wählen Sie dann ein geerbtes Steuerelement aus. Das Steuerelement wird gesperrt angezeigt und verhält sich so, als wäre sein Zugriffsmodifizierer private
.
ToolStripContainer-Unterstützung für die Vererbung
Das Steuerelement ToolStripContainer unterstützt eingeschränkte vererbte Szenarien, ähnlich wie im folgenden Beispiel:
Erstellen Sie eine neue Windows Forms-Anwendung.
Fügen Sie dem Formular eine ToolStripContainer hinzu.
Legen Sie den Zugriffsmodifizierer von ToolStripContainer auf
public
oderprotected
fest.Fügen Sie eine beliebige Kombination aus ToolStrip-, MenuStrip- und ContextMenuStrip-Steuerelementen zu den ToolStripPanel-Regionen von ToolStripContainer hinzu.
Erstellen Sie das Projekt.
Fügen Sie ein Formular hinzu, das von dem ersten Formular erbt.
Wählen Sie die geerbte ToolStripContainer-Instanz im Formular aus.
Geerbtes Verhalten von untergeordneten Steuerelementen
Nachdem Sie die vorherigen Schritte abgeschlossen haben, tritt das folgende geerbte Verhalten auf:
Im Designer wird das Steuerelement mit einem geerbten Symbol angezeigt.
Die ToolStripPanel-Steuerelemente sind gesperrt, und Sie können ihre Inhalte nicht auswählen oder neu anordnen.
Sie können dem ToolStripContentPanel Steuerelemente hinzufügen, die Steuerelemente verschieben und sie zu untergeordneten Steuerelementen von ToolStripContentPanel machen.
Ihre Änderungen bleiben nach dem Erstellen des Formulars erhalten.
Hinweis
Entfernen Sie die Zugriffsmodifizierer aus allen ToolStripPanel-Steuerelementen, die Teil einer ToolStripContainer-Instanz sind. Der Zugriffsmodifizierer von ToolStripContainer steuert das gesamte Steuerelement.
Teilweise Vertrauenswürdigkeit
Die Einschränkungen von ToolStrip
unter teilweiser Vertrauenswürdigkeit sollen verhindern, dass versehentlich persönliche Informationen eingegeben werden, die von nicht autorisierten Personen oder Diensten verwendet werden könnten. Die Schutzmaßnahmen lauten wie folgt:
ToolStripDropDown
-Steuerelemente erfordern von AllWindows die Anzeige von Elementen in einem ToolStripControlHost. Dies gilt sowohl für intrinsische Steuerelemente wie ToolStripTextBox, ToolStripComboBox und ToolStripProgressBar als auch für vom Benutzer erstellte Steuerelemente. Wenn diese Anforderung nicht erfüllt ist, werden diese Elemente nicht angezeigt. Es wird keine Ausnahme ausgelöst.Das Festlegen der Eigenschaft AutoClose auf
false
ist nicht zulässig, und der abbrechbare Ereignisparameter Closing wird ignoriert. Dadurch wird es unmöglich, mehr als eine Tastatureingabe vorzunehmen, ohne das Dropdownelement zu schließen. Wenn diese Anforderung nicht erfüllt ist, werden solche Elemente nicht angezeigt. Es wird keine Ausnahme ausgelöst.Viele Ereignisse zur Verarbeitung von Tastatureingaben werden nicht ausgelöst, wenn sie in anderen Kontexten mit teilweiser Vertrauenswürdigkeit als AllWindows auftreten.
Zugriffsschlüssel werden nicht verarbeitet, wenn AllWindows nicht erteilt wurde.
Verwendung
Die folgenden Verwendungsmuster haben Einfluss auf das ToolStrip-Layout, die Tastaturinteraktion und das Verhalten der Endbenutzer:
Einbindung in einem ToolStripPanel
Das ToolStrip kann innerhalb von ToolStripPanel und über ToolStripPanel-Instanzen hinweg neu positioniert werden. Die
Dock
-Eigenschaft wird ignoriert, und wenn die Stretch-Eigenschaftfalse
lautet, nimmt die Größe von ToolStrip zu, wenn Elemente dem ToolStripPanel hinzugefügt werden. Normalerweise ist ToolStrip nicht an der Aktivierreihenfolge beteiligt.Angedockt
Das ToolStrip wird an einer Seite eines Containers an einer festen Position platziert und seine Größe dehnt sich über die gesamte Kante aus, an der er angedockt ist. Normalerweise ist ToolStrip nicht an der Aktivierreihenfolge beteiligt.
Absolute Positionierung
Diese ToolStrip-Instanz ist wie andere Steuerelemente, da es über die Eigenschaft Location platziert wird, eine feste Größe hat und normalerweise an der Aktivierreihenfolge beteiligt ist.
Tastaturinteraktion
Zugriffsschlüssel
In Kombination mit oder im Anschluss an die ALT-TASTE sind Zugriffsschlüssel eine Möglichkeit, ein Steuerelement mithilfe der Tastatur zu aktivieren. ToolStrip unterstützt sowohl explizite als auch implizite Zugriffsschlüssel. Bei der expliziten Definition wird ein kaufmännisches Und (&) vor dem Buchstaben verwendet. Die implizite Definition verwendet einen Algorithmus, der versucht, ein passendes Element anhand der Reihenfolge der Zeichen in einer bestimmten Text
-Eigenschaft zu finden.
Tastenkombinationen
Die Tastenkombinationen, die von einem MenuStrip verwendet werden, verwenden eine Kombination der Keys-Enumeration (die nicht geordnet ist), um die Tastenkombination zu definieren. Sie können die ShortcutKeyDisplayString-Eigenschaft auch verwenden, um eine Tastenkombination nur mit Text anzuzeigen, z. B. das Anzeigen von „Entf“ anstelle von „Entfernen“.
Navigation
Die ALT-TASTE aktiviert MenuStrip, auf das durch MainMenuStrip verwiesen wird. Von dort aus navigiert STRG+TAB zwischen ToolStrip-Steuerelementen innerhalb von ToolStripPanel
-Instanzen. Die TAB-TASTE und die Pfeiltasten auf der numerischen Tastatur navigieren zwischen Elementen in einer ToolStrip-Instanz. Ein spezieller Algorithmus sorgt für die Navigation in der Überlaufregion. Die LEERTASTE wählt ein ToolStripButton, ToolStripDropDownButton oder ToolStripSplitButton aus.
Fokus und Validierung
Wenn sie mit der ALT-TASTE aktiviert werden, übernehmen MenuStrip oder ToolStrip in der Regel nicht den Fokus von dem Steuerelement, das gerade den Fokus hat, oder entfernen den Fokus nicht vom aktuellen Steuerelement. Wenn ein Steuerelement innerhalb der MenuStrip-Instanz oder in einer Dropdownliste von MenuStrip gehostet wird, erhält das Steuerelement den Fokus, wenn der Benutzer die TAB-TASTE drückt. Im Allgemeinen werden die Ereignisse GotFocus, LostFocus, Enter und Leave von MenuStrip möglicherweise nicht ausgelöst, wenn sie über die Tastatur aktiviert werden. Verwenden Sie in solchen Fällen stattdessen die Ereignisse MenuActivate und MenuDeactivate.
CausesValidation ist standardmäßig false
. Rufen Sie Validate explizit für Ihr Formular auf, um die Validierung durchzuführen.
Layout
Sie steuern das ToolStrip-Layout, indem Sie einen der Member von ToolStripLayoutStyle mit der Eigenschaft LayoutStyle auswählen.
Stapellayouts
Die Stapelung ist das Anordnen von Elementen nebeneinander an beiden Enden der ToolStrip-Instanz. In der folgenden Liste werden die Stapellayouts beschrieben.
StackWithOverflow ist die Standardoption. Diese Einstellung bewirkt, dass ToolStrip sein Layout automatisch entsprechend der Orientation-Eigenschaft ändert, um das Ziehen und Andocken zu ermöglichen.
VerticalStackWithOverflow rendert die ToolStrip-Elemente vertikal nebeneinander.
HorizontalStackWithOverflow rendert die ToolStrip-Elemente horizontal nebeneinander.
Weitere Features von Stapellayouts
Alignment bestimmt das Ende der ToolStrip-Instanz, an der das Element ausgerichtet ist.
Wenn Elemente nicht in die ToolStrip-Instanz passen, wird automatisch eine Schaltfläche „Überlauf“ angezeigt. Die Einstellung Overflow der Eigenschaft legt fest, ob ein Element immer, bei Bedarf oder nie im Überlaufbereich angezeigt wird.
In dem LayoutCompleted-Ereignis können Sie die Placement-Eigenschaft untersuchen, um festzustellen, ob ein Element auf der Hauptinstanz von ToolStrip, im Überlauf von ToolStrip platziert wurde oder gar nicht angezeigt wird. Die typischen Gründe, warum ein Element nicht angezeigt wird, sind, dass das Element nicht auf die Hauptinstanz von ToolStrip passt und seine Overflow-Eigenschaft auf Never festgelegt wurde.
Sorgen Sie dafür, dass ToolStrip verschiebbar ist, indem Sie es in einer ToolStripPanel-Instanz ablegen und sein GripStyle auf Visible festlegen.
Weitere Layoutoptionen
Die anderen Layoutoptionen sind Flow und Table.
Flusslayout
Das Flow-Layout ist die Standardeinstellung für ContextMenuStrip, ToolStripDropDownMenu und ToolStripOverflow. Es ähnelt FlowLayoutPanel. Die Features des Flow-Layouts lauten wie folgt:
Alle Features von FlowLayoutPanel werden von der LayoutSettings-Eigenschaft verfügbar gemacht. Sie müssen die LayoutSettings-Klasse in eine FlowLayoutSettings-Klasse umwandeln.
Sie können die Dock- und Anchor-Eigenschaften im Code verwenden, um die Elemente in der Zeile auszurichten.
Die Alignment-Eigenschaft wird ignoriert.
Im LayoutCompleted-Ereignis können Sie die Placement-Eigenschaft untersuchen, um festzustellen, ob ein Element auf der ToolStrip-Hauptinstanz platziert wurde oder nicht passte.
Der Griff wird nicht gerendert und daher kann ein ToolStrip im Flow-Layoutstil in einem ToolStripPanel nicht verschoben werden.
Die ToolStrip-Überlaufschaltfläche wird nicht gerendert und Overflow wird ignoriert.
Tabellenlayout
Das Table-Layout ist die Standardeinstellung für StatusStrip. Es ähnelt TableLayoutPanel. Die Features des Flow-Layouts lauten wie folgt:
Alle Features von TableLayoutPanel werden von der LayoutSettings-Eigenschaft verfügbar gemacht. Sie müssen die LayoutSettings-Klasse in eine TableLayoutSettings-Klasse umwandeln.
Sie können die Dock- und Anchor-Eigenschaften im Code verwenden, um die Elemente in der Tabellenzelle auszurichten.
Die Alignment-Eigenschaft wird ignoriert.
Im LayoutCompleted-Ereignis können Sie die Placement-Eigenschaft untersuchen, um festzustellen, ob ein Element auf der ToolStrip-Hauptinstanz platziert wurde oder nicht passte.
Der Griff wird nicht gerendert und daher kann ein ToolStrip im Table-Layoutstil in einem ToolStripPanel nicht verschoben werden.
Die ToolStrip-Überlaufschaltfläche wird nicht gerendert und Overflow wird ignoriert.
ToolStripItem
Die folgenden Themen beschreiben ToolStripItem und die Steuerelemente, die davon abgeleitet werden.
ToolStripItem ist die abstrakte Basisklasse für alle Elemente, die in eine ToolStrip-Instanz gelangen. Das folgende Objektmodell zeigt die ToolStripItem-Vererbungshierarchie.
ToolStripItem-Klassen erben entweder direkt von ToolStripItem oder indirekt von ToolStripItem über ToolStripControlHost oder ToolStripDropDownItem.
ToolStripItem-Steuerelemente müssen in einem ToolStrip, MenuStrip, StatusStrip oder ContextMenuStrip enthalten sein und können nicht direkt zu einem Formular hinzugefügt werden. Die verschiedenen Containerklassen sind so konzipiert, dass sie eine entsprechende Teilmenge von ToolStripItem-Steuerelementen enthalten.
In der folgenden Tabelle sind die vorhandenen ToolStripItem-Steuerelemente und die Container aufgeführt, in denen sie am besten aussehen. Obwohl jedes ToolStrip-Element in einem beliebigen von ToolStrip abgeleiteten Container untergebracht werden kann, wurden diese Elemente so entworfen, dass sie in den folgenden Containern am besten aussehen:
Hinweis
ToolStripDropDown wird nicht in der Designer-Toolbox angezeigt.
Enthaltenes Element | ToolStrip | MenuStrip | ContextMenuStrip | StatusStrip | ToolStripDropDown |
---|---|---|---|---|---|
ToolStripButton | Ja | Nr. | Nr. | Nein | Ja |
ToolStripComboBox | Ja | Ja | Ja | Keine | Ja |
ToolStripSplitButton | Ja | Nr. | Nein | Ja | Ja |
ToolStripLabel | Ja | Nr. | Nein | Ja | Ja |
ToolStripSeparator | Ja | Ja | Ja | Keine | Ja |
ToolStripDropDownButton | Ja | Nr. | Nein | Ja | Ja |
ToolStripTextBox | Ja | Ja | Ja | Keine | Ja |
ToolStripMenuItem | Keine | Ja | Ja | Nr. | Nr. |
ToolStripStatusLabel | Nr. | Nr. | Nein | Ja | Keine |
ToolStripProgressBar | Ja | Nr. | Nein | Ja | Keine |
ToolStripControlHost | Ja | Ja | Keine | Ja | Ja |
ToolStripButton
ToolStripButton ist das Schaltflächenelement für ToolStrip. Sie können es mit verschiedenen Rahmenarten anzeigen und es zur Darstellung und Aktivierung von Betriebszuständen verwenden. Sie können auch festlegen, dass es standardmäßig den Fokus erhält.
ToolStripLabel
Die ToolStripLabel-Instanz bietet Bezeichnungsfunktionen in ToolStrip-Steuerelementen. ToolStripLabel ist wie ToolStripButton, das standardmäßig nicht den Fokus erhält und nicht als gedrückt oder hervorgehoben gerendert wird.
ToolStripLabel als gehostetes Element unterstützt Zugriffsschlüssel.
Verwenden Sie die Eigenschaften LinkColor, LinkVisited und LinkBehavior für eine ToolStripLabel-Instanz, um das Linksteuerelement in einer ToolStrip-Instanz zu unterstützen.
ToolStripStatusLabel
ToolStripStatusLabel ist eine Version von ToolStripLabel, die speziell für die Verwendung in StatusStrip konzipiert ist. Zu den besonderen Features gehören BorderStyle, BorderSides und Spring.
ToolStripSeparator
ToolStripSeparator fügt einer Symbolleiste oder einem Menü eine vertikale oder horizontale Linie hinzu, je nach Ausrichtung. Es ermöglicht die Gruppierung von oder die Unterscheidung zwischen Elementen, z. B. in einem Menü.
Sie können ein ToolStripSeparator zur Entwurfszeit hinzufügen, indem Sie es aus einer Dropdownliste auswählen. Sie können jedoch auch automatisch ein ToolStripSeparator erstellen, indem Sie einen Bindestrich (-) entweder im Designer-Vorlagenknoten oder in der Add-Methode eingeben.
ToolStripControlHost
ToolStripControlHost ist die abstrakte Basisklasse für ToolStripComboBox, ToolStripTextBox und ToolStripProgressBar. ToolStripControlHost kann andere Steuerelemente, einschließlich benutzerdefinierter Steuerelemente, auf zwei Arten hosten:
Erstellen Sie eine ToolStripControlHost-Klasse mit einer Klasse, die von Control abgeleitet ist. Um uneingeschränkten Zugriff auf das gehostete Steuerelement und die Eigenschaften zu erhalten, müssen Sie die Control-Eigenschaft wieder in die eigentliche Klasse umwandeln, die sie darstellt.
Erweitern Sie ToolStripControlHost, und rufen Sie im parameterlosen Konstruktor der geerbten Klasse den Konstruktor der Basisklasse auf, indem Sie eine Klasse übergeben, die von Control abgeleitet ist. Mit dieser Option können Sie allgemeine Steuerelementmethoden und Eigenschaften für den einfachen Zugriff in einer ToolStrip-Instanz umschließen.
ToolStripComboBox
ToolStripComboBox ist das ComboBox, das für das Hosting in einer ToolStrip-Instanz optimiert ist. Eine Teilmenge der Eigenschaften und Ereignisse des gehosteten Steuerelements werden auf der ToolStripComboBox-Ebene verfügbar gemacht, aber das zugrunde liegende ComboBox-Steuerelement ist vollständig über die ComboBox-Eigenschaft zugänglich.
ToolStripTextBox
ToolStripTextBox ist das TextBox, das für das Hosting in einer ToolStrip-Instanz optimiert ist. Eine Teilmenge der Eigenschaften und Ereignisse des gehosteten Steuerelements werden auf der ToolStripTextBox-Ebene verfügbar gemacht, aber das zugrunde liegende TextBox-Steuerelement ist vollständig über die TextBox-Eigenschaft zugänglich.
ToolStripProgressBar
ToolStripProgressBar ist das ProgressBar, das für das Hosting in einer ToolStrip-Instanz optimiert ist. Eine Teilmenge der Eigenschaften und Ereignisse des gehosteten Steuerelements werden auf der ToolStripProgressBar-Ebene verfügbar gemacht, aber das zugrunde liegende ProgressBar-Steuerelement ist vollständig über die ProgressBar-Eigenschaft zugänglich.
ToolStripDropDownItem
ToolStripDropDownItem ist die abstrakte Basisklasse für ToolStripMenuItem, ToolStripDropDownButton und ToolStripSplitButton, die Elemente direkt oder zusätzliche Elemente in einem Dropdowncontainer hosten können. Dazu legen Sie die DropDown-Eigenschaft auf ToolStripDropDown und die Items-Eigenschaft der ToolStripDropDown-Instanz fest. Greifen Sie direkt über die DropDownItems-Eigenschaft auf diese Dropdownelemente zu.
ToolStripMenuItem
ToolStripMenuItem ist ein ToolStripDropDownItem, das mit ToolStripDropDownMenu und ContextMenuStrip arbeitet, um die spezielle Hervorhebung, das Layout und die Spaltenanordnung für Menüs zu übernehmen.
ToolStripDropDownButton
ToolStripDropDownButton sieht wie ToolStripButton aus, aber zeigt einen Dropdownbereich an, wenn der Benutzer darauf klickt. Blenden Sie den Dropdownpfeil ein oder aus, indem Sie die ShowDropDownArrow-Eigenschaft festlegen. ToolStripDropDownButton hostet eine ToolStripOverflowButton-Instanz, die Elemente anzeigt, die ToolStrip überlaufen.
ToolStripSplitButton
ToolStripSplitButton kombiniert die Funktionalität von Schaltflächen und Dropdownlisten.
Verwenden Sie die DefaultItem-Eigenschaft, um das Click-Ereignis des gewählten Dropdownlistenelements mit dem auf der Schaltfläche angezeigten Element zu synchronisieren.
Generische Features von ToolStripItem
ToolStripItem stellt die folgenden generischen Features und Optionen für vererbende Steuerelemente bereit:
Kernereignisse
Bildbehandlung
Ausrichtung
Text- und Bildbeziehung
Anzeigestil
Kernereignisse
ToolStripItem-Steuerelemente erhalten ihre eigenen Klick-, Maus- und Zeichenereignisse und können auch einige Tastaturvorverarbeitungen durchführen.
Bildbehandlung
Die Eigenschaften Image, ImageAlign, ImageIndex, ImageKey und ImageScaling beziehen sich auf verschiedene Aspekte der Bildbehandlung. Verwenden Sie Bilder in ToolStrip-Steuerelementen, indem Sie diese Eigenschaften direkt festlegen oder indem Sie die nur für die Laufzeit zulässige ImageList-Eigenschaft festlegen.
Die Bildskalierung wird durch die Interaktion von Eigenschaften in ToolStrip und ToolStripItem wie folgt bestimmt:
ImageScalingSize ist die Skalierung des endgültigen Bilds, die sich aus der Kombination der ImageScaling-Einstellung des Bilds und der AutoSize-Einstellung des Containers ergibt.
Wenn AutoSize entsprechend
true
(die Standardeinstellung) und ToolStripItemImageScalingSizeToFit ist, erfolgt keine Skalierung des Bilds und die ToolStrip-Größe entspricht der des größten Elements oder einer vorgegebenen Mindestgröße.Wenn AutoSize entsprechend
false
und ToolStripItemImageScaling wiederum None ist, werden weder Bild noch ToolStrip skaliert.
Ausrichtung
Der Wert der Alignment-Eigenschaft bestimmt das Ende der ToolStrip-Instanz, an dem ein Element angezeigt wird. Die Alignment-Eigenschaft funktioniert nur, wenn der Layoutstil von ToolStrip auf einen der Stapelüberlaufwerte festgelegt ist.
Die Elemente werden in der Reihenfolge auf der ToolStrip-Instanz platziert, in der sie in der Elementsammlung angezeigt werden. Um programmgesteuert zu ändern, wo ein Element angeordnet ist, verwenden Sie die Insert-Methode, um das Element in der Sammlung zu verschieben. Diese Methode verschiebt das Element, dupliziert es aber nicht.
Text- und Bildbeziehung
Die TextImageRelation-Eigenschaft definiert die relative Platzierung des Bilds in Bezug auf den Text in einer ToolStripItem-Instanz. Elemente, bei denen ein Bild, ein Text oder beides fehlt, werden als Sonderfälle behandelt, sodass ToolStripItem für das fehlende Element oder die fehlenden Elemente keine leere Stelle anzeigt.
Anzeigestil
DisplayStyle ermöglicht es Ihnen, die Werte der Text- und Bildeigenschaften eines Elements festzulegen und dabei nur das anzuzeigen, was Sie möchten. Dies wird normalerweise verwendet, um nur den Anzeigestil zu ändern, wenn das gleiche Element in einem anderen Kontext angezeigt wird.
Zubehörklassen
Klassen, die verschiedene andere Funktionen bereitstellen, umfassen Folgendes:
ToolStripManager unterstützt ToolStrip-bezogene Aufgaben für ganze Anwendungen, z. B. Zusammenführung, Einstellungen und Rendereroptionen.
ToolStripRenderer ermöglicht es Ihnen, einen bestimmten Stil oder ein bestimmtes Design problemlos auf eine ToolStrip-Instanz anzuwenden.
ToolStripProfessionalRenderer erstellt Stifte und Pinsel auf der Grundlage einer austauschbaren Farbtabelle (ProfessionalColorTable).
ToolStripSystemRenderer wendet Systemfarben und einen flachen visuellen Stil auf ToolStrip-Anwendungen an.
ToolStripContainer ist ähnlich wie SplitContainer. Es verwendet vier angedockte Seitenbereiche (Instanzen von ToolStripPanel) und einen zentralen Bereich (eine Instanz von ToolStripContentPanel), um eine typische Anordnung zu erstellen. Sie können die Seitenbereiche nicht entfernen, aber ausblenden. Sie können den zentralen Bereich weder entfernen noch ausblenden. Sie können ein oder mehrere ToolStrip-, MenuStrip- oder StatusStrip-Steuerelemente in den Seitenbereichen anordnen und den zentralen Bereich für andere Steuerelemente verwenden. ToolStripContentPanel bietet auch eine Möglichkeit, Rendererunterstützung in den Textkörper Ihres Formulars zu integrieren, um eine einheitliche Darstellung sicherzustellen. ToolStripContainer unterstützt die Schnittstelle für mehrere Dokumente (Multiple Document Interface, MDI) nicht.
ToolStripPanel bietet Platz zum Verschieben und Anordnen von ToolStrip-Steuerelementen. Sie können bei Bedarf nur einen Bereich verwenden und ToolStripPanel funktioniert gut in MDI-Szenarien.
Siehe auch
.NET Desktop feedback