Architettura del controllo ToolStripToolStrip Control Architecture

Il ToolStrip e ToolStripItem classi forniscono un sistema flessibile ed estendibile per la visualizzazione degli elementi della barra degli strumenti, stato e menu.The ToolStrip and ToolStripItem classes provide a flexible, extensible system for displaying toolbar, status, and menu items. Tutte queste classi sono contenute nel System.Windows.Forms dello spazio dei nomi e sono tutti in genere vengono denominati con il prefisso "ToolStrip" (ad esempio ToolStripOverflow) o con il suffisso "Strisce" (, ad esempio MenuStrip).These classes are all contained in the System.Windows.Forms namespace and they are all typically named with the "ToolStrip" prefix (such as ToolStripOverflow) or with the "Strip" suffix (such as MenuStrip).

ToolStripToolStrip

Gli argomenti seguenti descrivono ToolStrip e i controlli che derivano da essa.The following topics describe ToolStrip and the controls that derive from it.

ToolStrip è la classe base astratta per MenuStrip, StatusStrip, e ContextMenuStrip.ToolStrip is the abstract base class for MenuStrip, StatusStrip, and ContextMenuStrip. L'oggetto seguente modello Mostra il ToolStrip gerarchia di ereditarietà.The following object model shows the ToolStrip inheritance hierarchy.

Modello a oggetti ToolStripToolStrip Object Model
Modello a oggetti ToolStripToolStrip object model

È possibile accedere a tutti gli elementi in un ToolStrip attraverso il Items raccolta.You can access all the items in a ToolStrip through the Items collection. È possibile accedere a tutti gli elementi in un ToolStripDropDownItem attraverso il DropDownItems raccolta.You can access all the items in a ToolStripDropDownItem through the DropDownItems collection. In una classe derivata da ToolStrip, è anche possibile usare il DisplayedItems proprietà a cui accedere solo gli elementi attualmente visualizzati.In a class derived from ToolStrip, you can also use the DisplayedItems property to access only those items that are currently displayed. Questi sono gli elementi che non sono attualmente in un menu di overflow.These are the items that are not currently in an overflow menu.

Gli elementi seguenti sono appositamente progettati per integrarsi perfettamente con entrambi ToolStripSystemRenderer e ToolStripProfessionalRenderer in tutti gli orientamenti.The following items are specifically designed to work seamlessly with both ToolStripSystemRenderer and ToolStripProfessionalRenderer in all orientations. Sono disponibili per impostazione predefinita in fase di progettazione per il ToolStrip controllo:They are available by default at design time for the ToolStrip control:

MenuStrip è il contenitore di primo livello che sostituisce MainMenu.MenuStrip is the top-level container that supersedes MainMenu. Fornisce inoltre la gestione delle chiavi e più documenti (MDI) interfaccia funzionalità.It also provides key handling and multiple document interface (MDI) features. A livello funzionale, ToolStripDropDownItem e ToolStripMenuItem funzionano insieme MenuStrip, anche se vengono derivati dalla ToolStripItem.Functionally, ToolStripDropDownItem and ToolStripMenuItem work along with MenuStrip, although they are derived from ToolStripItem.

Gli elementi seguenti sono appositamente progettati per integrarsi perfettamente con entrambi ToolStripSystemRenderer e ToolStripProfessionalRenderer in tutti gli orientamenti.The following items are specifically designed to work seamlessly with both ToolStripSystemRenderer and ToolStripProfessionalRenderer in all orientations. Sono disponibili per impostazione predefinita in fase di progettazione per il MenuStrip controllo:They are available by default at design time for the MenuStrip control:

StatusStripStatusStrip

StatusStrip sostituisce il StatusBar controllo.StatusStrip replaces the StatusBar control. Speciali funzionalità del StatusStrip includono un layout di tabella personalizzata, il supporto per il ridimensionamento del form e lo spostamento di riquadri e il Spring proprietà, che consente un ToolStripStatusLabel per riempire lo spazio disponibile automaticamente.Special features of StatusStrip include a custom table layout, support for the form's sizing and moving grips, and the Spring property, which allows a ToolStripStatusLabel to fill available space automatically.

Gli elementi seguenti sono appositamente progettati per integrarsi perfettamente con entrambi ToolStripSystemRenderer e ToolStripProfessionalRenderer in tutti gli orientamenti.The following items are specifically designed to work seamlessly with both ToolStripSystemRenderer and ToolStripProfessionalRenderer in all orientations. Sono disponibili per impostazione predefinita in fase di progettazione per il StatusStrip controllo:They are available by default at design time for the StatusStrip control:

ContextMenuStripContextMenuStrip

ContextMenuStrip sostituisce ContextMenu.ContextMenuStrip replaces ContextMenu. È possibile associare un ContextMenuStrip con qualsiasi controllo e un mouse a destra fare clic su Visualizza automaticamente il menu di scelta rapida (o menu di scelta rapida).You can associate a ContextMenuStrip with any control, and a right mouse click automatically displays the context menu (or shortcut menu). È possibile mostrare un ContextMenuStrip a livello di codice usando il Show (metodo).You can show a ContextMenuStrip programmatically by using the Show method. ContextMenuStrip supporta annullabile Opening e Closing eventi per gestire la compilazione dinamica e scenari a selezione multipla.ContextMenuStrip supports cancelable Opening and Closing events to handle dynamic population and multiple-click scenarios. ContextMenuStrip supporta immagini, lo stato di controllo voce di menu, testo, le chiavi di accesso, tasti di scelta rapida e i menu a cascata.ContextMenuStrip supports images, menu-item check state, text, access keys, shortcuts, and cascading menus.

Gli elementi seguenti sono appositamente progettati per integrarsi perfettamente con entrambi ToolStripSystemRenderer e ToolStripProfessionalRenderer in tutti gli orientamenti.The following items are specifically designed to work seamlessly with both ToolStripSystemRenderer and ToolStripProfessionalRenderer in all orientations. Sono disponibili per impostazione predefinita in fase di progettazione per il ContextMenuStrip controllo:They are available by default at design time for the ContextMenuStrip control:

Funzionalità generiche di ToolStripToolStrip Generic Features

Gli argomenti seguenti descrivono le funzionalità e il comportamento che sono generici per la ToolStrip e i controlli derivati.The following topics describe features and behavior that are generic to the ToolStrip and derived controls.

DisegnoPainting

È possibile eseguire il disegno personalizzato ToolStrip controlli in vari modi.You can do custom painting in ToolStrip controls in several ways. Come con altri controlli Windows Form, il ToolStrip e ToolStripItem prevedono sottoponibile a override OnPaint metodi e Paint eventi.As with other Windows Forms controls, the ToolStrip and ToolStripItem both have overridable OnPaint methods and Paint events. Come per il disegno standard, il sistema di coordinate è relativo all'area client del controllo. l'angolo superiore sinistro del controllo è 0, 0.As with regular painting, the coordinate system is relative to the client area of the control; that is, the upper left-hand corner of the control is 0, 0. Il Paint evento e OnPaint metodo per un ToolStripItem si comportano come gli altri eventi di disegno del controllo.The Paint event and OnPaint method for a ToolStripItem behave like other control paint events.

Il ToolStrip controlli forniscono anche accesso ottimizzato per il rendering degli elementi e contenitori tramite il ToolStripRenderer (classe), che ha metodi sottoponibili a override per il disegno dello sfondo, sfondo dell'elemento, immagine di un elemento, elemento freccia, testo dell'elemento e il bordo del ToolStrip.The ToolStrip controls also provide finer access to the rendering of the items and container through the ToolStripRenderer class, which has overridable methods for painting the background, item background, item image, item arrow, item text, and border of the ToolStrip. Gli argomenti dell'evento per questi metodi espongono diverse proprietà, ad esempio i rettangoli, colori e i formati di testo che è possibile modificare in base alle esigenze.The event arguments for these methods expose several properties such as rectangles, colors, and text formats that you can adjust as desired.

Per modificare alcuni aspetti del modo in cui viene disegnato un elemento, è in genere eseguire l'override di ToolStripRenderer.To adjust just a few aspects of how an item is painted, you typically override the ToolStripRenderer.

Se si sta scrivendo un nuovo elemento e si vuole controllare tutti gli aspetti del disegno, eseguire l'override di OnPaint (metodo).If you are writing a new item and want to control all aspects of the painting, override the OnPaint method. Dall'interno OnPaint, è possibile usare metodi dal ToolStripRenderer.From within OnPaint, you can use methods from the ToolStripRenderer.

Per impostazione predefinita, il ToolStrip è double memorizzato nel buffer, sfruttando il OptimizedDoubleBuffer impostazione.By default, the ToolStrip is double buffered, taking advantage of the OptimizedDoubleBuffer setting.

GenitorialitàParenting

Il concetto di proprietà e assegnazione di elementi padre del contenitore è più complesso in ToolStrip controlla rispetto in altri controlli contenitore di Windows Form.The concept of container ownership and parenting is more complex in ToolStrip controls than in other Windows Forms container controls. Che è necessario per supportare scenari dinamici, ad esempio overflow, una condivisione di elementi di elenco a discesa in più ToolStrip elementi e per supportare la generazione di un ContextMenuStrip da un controllo.That is necessary to support dynamic scenarios such as overflow, sharing drop-down items across multiple ToolStrip items, and to support the generation of a ContextMenuStrip from a control.

Nell'elenco seguente vengono descritti i membri correlati a genitorialità e relativo utilizzo.The following list describes members related to parenting and explains their use.

  • OwnerItem accede all'elemento che rappresenta l'origine dell'elemento di elenco a discesa.OwnerItem accesses the item that is the source of the drop-down item. È simile alla SourceControl, ma anziché restituire un controllo, viene restituito un ToolStripItem.This is similar to SourceControl, but instead of returning a control, it returns a ToolStripItem.

  • SourceControl Determina quale controllo è l'origine del ContextMenuStrip quando più controlli condividono lo stesso ContextMenuStrip.SourceControl determines which control is the source of the ContextMenuStrip when multiple controls share the same ContextMenuStrip.

  • GetCurrentParent è una funzione di accesso di sola lettura di Parent proprietà.GetCurrentParent is a read-only accessor to the Parent property. Un elemento padre è diverso da un proprietario che un elemento padre indica l'oggetto corrente restituito ToolStrip in cui l'elemento viene visualizzato, che potrebbe essere nell'area di overflow.A parent differs from an owner in that a parent denotes the returned current ToolStrip in which the item is displayed, which might be in the overflow area.

  • Owner Restituisce il ToolStrip la cui raccolta di elementi contiene corrente ToolStripItem.Owner returns the ToolStrip whose Items collection contains the current ToolStripItem. Questo è il modo migliore per fare riferimento a ImageList o altre proprietà di primo livello ToolStrip senza scrivere codice speciale per gestire l'overflow.This is the best way to reference ImageList or other properties in the top-level ToolStrip without writing special code to handle overflow.

Comportamento dei controlli ereditatiBehavior of Inherited Controls

I seguenti controlli sono bloccati ogni volta che vengono utilizzati nell'ereditarietà:The following controls are locked whenever they are used in inheritance:

Ad esempio, creare una nuova applicazione Windows Forms utilizzando uno o più controlli nell'elenco precedente.For example, create a new Windows Forms application by using one or more of the controls in the previous list. Impostare il modificatore di accesso di uno o più controlli public o protectede quindi compilare il progetto.Set the access modifier of one or more controls to public or protected, and then build the project. Aggiungere un form che eredita dal form prima e quindi selezionare un controllo ereditato.Add a form that inherits from the first form, and then select an inherited control. Viene visualizzato il controllo bloccato e si comporta come se fosse il modificatore di accesso private.The control appears locked, behaving as if its access modifier was private.

ToolStripContainer supporto dell'ereditarietàToolStripContainer Support of Inheritance

Il ToolStripContainer controllo supporta scenari di ereditarietà limitati, simili all'esempio seguente:The ToolStripContainer control supports limited inherited scenarios, similar to the following example:

  1. Creare una nuova applicazione Windows Forms.Create a new Windows Forms application.

  2. Aggiungere un tipo ToolStripContainer al form.Add a ToolStripContainer to the form.

  3. Impostare il modificatore di accesso dei ToolStripContainer al public o protected.Set the access modifier of the ToolStripContainer to public or protected.

  4. Aggiungere qualsiasi combinazione di ToolStrip, MenuStrip, e ContextMenuStrip controlli per il ToolStripPanel aree del ToolStripContainer.Add any combination of ToolStrip, MenuStrip, and ContextMenuStrip controls to the ToolStripPanel regions of the ToolStripContainer.

  5. Compilare il progetto.Build the project.

  6. Aggiungere un form che eredita dal form prima.Add a form that inherits from the first form.

  7. Selezionare il controllo ereditato ToolStripContainer nel form.Select the inherited ToolStripContainer on the form.

Ereditato il comportamento dei controlli figlioInherited Behavior of Child Controls

Dopo aver completato i passaggi precedenti, ereditato si verifica quanto segue:After you complete the previous steps, the following inherited behavior occurs:

  • Nella finestra di progettazione, il controllo viene visualizzato con un'icona ereditata.In the designer, the control appears with an inherited icon.

  • Il ToolStripPanel controlli sono bloccati; non è possibile selezionare o ridisporre il relativo contenuto.The ToolStripPanel controls are locked; you cannot select or rearrange their contents.

  • È possibile aggiungere controlli per il ToolStripContentPanel, spostare i controlli e renderle di controlli figlio di ToolStripContentPanel.You can add controls to the ToolStripContentPanel, move the controls, and make them child controls of the ToolStripContentPanel.

  • Le modifiche persistono dopo la compilazione del form.Your changes persist after building the form.

    Nota

    Rimuovere i modificatori di accesso da tutti i ToolStripPanel controlli che fanno parte di un ToolStripContainer.Remove the access modifiers from all ToolStripPanel controls that are part of a ToolStripContainer. Il modificatore di accesso del ToolStripContainer governa l'intero controllo.The access modifier of the ToolStripContainer governs the whole control.

Attendibilità parzialePartial Trust

Le limitazioni di ToolStripcon attendibilità parziale sono progettati per impedire l'immissione accidentale di informazioni personali che potrebbero essere utilizzate da persone non autorizzate o servizi.The limitations of ToolStrips under partial trust are designed to prevent inadvertent entry of personal information that might be used by unauthorized persons or services. Le misure di protezione sono i seguenti:The protective measures are as follows:

  • ToolStripDropDown i controlli richiedono AllWindows per visualizzare gli elementi in un ToolStripControlHost.ToolStripDropDown controls require AllWindows to display items in a ToolStripControlHost. Questo vale per i controlli intrinseci, ad esempio ToolStripTextBox, ToolStripComboBox, e ToolStripProgressBar come controlli nonché alle creati dall'utente.This applies to both intrinsic controls such as ToolStripTextBox, ToolStripComboBox, and ToolStripProgressBar as well as to user-created controls. Se questo requisito non viene soddisfatta, questi elementi non vengono visualizzati.If this requirement is not met, these items are not displayed. Non viene generata alcuna eccezione.No exception is thrown.

  • Impostando il AutoClose proprietà false non è consentita e l'annullabile Closing evento parametro viene ignorato.Setting the AutoClose property to false is not allowed, and the cancelable Closing event parameter is ignored. Ciò rende Impossibile immettere più di una sequenza di tasti senza chiudere l'elemento di elenco a discesa.This makes it impossible to enter more than one keystroke without dismissing the drop-down item. Se questo requisito non viene soddisfatta, tali elementi non vengono visualizzati.If this requirement is not met, such items are not displayed. Non viene generata alcuna eccezione.No exception is thrown.

  • Gestione degli eventi molti sequenze di tasti non verrà generato se si verificano in contesti con attendibilità parziale diverso da AllWindows.Many keystroke handling events will not be raised if they occur in partial trust contexts other than AllWindows.

  • Le chiavi di accesso non vengono elaborati quando AllWindows non è stata concessa.Access keys are not processed when AllWindows is not granted.

UtilizzoUsage

I modelli di utilizzo seguenti hanno un impatto ToolStrip layout, l'interazione di tastiera e il comportamento degli utenti finali:The following usage patterns have a bearing on ToolStrip layout, keyboard interaction, and end-user behavior:

  • Aggiunto un ToolStripPanelJoined in a ToolStripPanel

    Il ToolStrip può essere riposizionato all'interno di ToolStripPanel e tra i controlli ToolStripPanels.The ToolStrip can be repositioned within the ToolStripPanel and across ToolStripPanels. Il Dock proprietà viene ignorata e se il Stretch proprietà è false, alle dimensioni del ToolStrip aumenta man mano che gli elementi vengono aggiunti al ToolStripPanel.The Dock property is ignored, and if the Stretch property is false, the size of the ToolStrip grows as items are added to the ToolStripPanel. In genere, il ToolStrip non fa parte l'ordine di tabulazione.Typically, the ToolStrip does not participate in the tab order.

  • AncoratoDocked

    Il ToolStrip viene posizionato su un lato di un contenitore in una posizione fissa e e consente di espandere le dimensioni sul bordo dell'intero a cui è ancorata.The ToolStrip is placed on one side of a container in a fixed position, and its size expands over the entire edge to which it is docked. In genere, il ToolStrip non fa parte l'ordine di tabulazione.Typically, the ToolStrip does not participate in the tab order.

  • Posizionati in modo assolutoAbsolutely positioned

    Il ToolStrip è simile ad altri controlli, in quanto viene inserito dal Location proprietà, ha una dimensione fissa e in genere partecipa nell'ordine di tabulazione.The ToolStrip is like other controls, in that it is placed by the Location property, has a fixed size, and typically participates in the tab order.

Interazione della tastieraKeyboard Interaction

Chiavi di accessoAccess Keys

Chiavi di accesso combinato con o in seguito il tasto ALT, sono un modo per attivare un controllo con la tastiera.Combined with or following the ALT key, access keys are one way to activate a control using the keyboard. ToolStrip supporta le chiavi di accesso esplicite e implicite.ToolStrip supports both explicit and implicit access keys. Definizione esplicita viene utilizzato un carattere e commerciale (&) che precede la lettera.Explicit definition uses an ampersand (&) character preceding the letter. Definizione implicita viene utilizzato un algoritmo che tenta di trovare un elemento corrispondente in base all'ordine dei caratteri in un determinato Text proprietà.Implicit definition uses an algorithm that attempts to find a matching item based on the order of characters in a given Text property.

Tasti di scelta rapidaShortcut Keys

Tasti di scelta rapida utilizzati da un MenuStrip usare una combinazione del Keys enumerazione, ovvero non specifici dell'ordine, per definire il tasto di scelta rapida.The shortcut keys used by a MenuStrip use a combination of the Keys enumeration (which is not order-specific) to define the shortcut key. È anche possibile usare il ShortcutKeyDisplayString proprietà per visualizzare un tasto di scelta rapida con solo testo, ad esempio visualizzando "CANC" anziché "Delete".You can also use the ShortcutKeyDisplayString property to display a shortcut key with text only, such as displaying "Del" instead of "Delete."

Il tasto ALT attiva i MenuStrip a cui punta MainMenuStrip.The ALT key activates the MenuStrip pointed to by MainMenuStrip. Da qui, CTRL + TAB consente di spostarsi tra ToolStrip controlli all'interno di ToolStripPanels.From there, CTRL+TAB navigates between ToolStrip controls within ToolStripPanels. Il tasto TAB e i tasti di direzione del tastierino numerico consentono di spostarsi tra gli elementi in un ToolStrip.The TAB key and the arrow keys on the numeric keypad navigate between items in a ToolStrip. Un algoritmo particolare gestisce lo spostamento nell'area di overflow.A special algorithm handles navigation in the overflow region. Barra spaziatrice seleziona una ToolStripButton, ToolStripDropDownButton, o ToolStripSplitButton.SPACEBAR selects a ToolStripButton, ToolStripDropDownButton, or ToolStripSplitButton.

Lo stato attivo e convalidaFocus and Validation

Se attivato tramite il tasto ALT, il MenuStrip o ToolStrip in genere non eseguire né rimuovere lo stato attivo dal controllo attualmente con lo stato attivo.When activated by the ALT key, the MenuStrip or ToolStrip typically neither take nor remove the focus from the control that currently has the focus. Se è disponibile un controllo ospitato all'interno di MenuStrip o un elenco a discesa del MenuStrip, il controllo riceve lo stato attivo quando l'utente preme il tasto TAB.If there is a control hosted within the MenuStrip or a drop-down of the MenuStrip, the control gains focus when the user presses the TAB key. In generale, il GotFocus, LostFocus, Enter, e Leave gli eventi di MenuStrip non vengano generati quando vengono attivati da tastiera.In general, the GotFocus, LostFocus, Enter, and Leave events of MenuStrip might not be raised when they are activated by the keyboard. In questi casi, usare il MenuActivate e MenuDeactivate eventi invece.In such cases, use the MenuActivate and MenuDeactivate events instead.

Per impostazione predefinita CausesValidation è false.By default, CausesValidation is false. Chiamare Validate in modo esplicito sul form per eseguire la convalida.Call Validate explicitly on your form to perform validation.

LayoutLayout

Controllano ToolStrip layout scegliendo uno dei membri di ToolStripLayoutStyle con il LayoutStyle proprietà.You control ToolStrip layout by choosing one of the members of ToolStripLayoutStyle with the LayoutStyle property.

Layout di stackStack Layouts

Impilamento è la disposizione degli elementi adiacenti a entrambe le estremità del ToolStrip.Stacking is the arranging of items beside each other at both ends of the ToolStrip. L'elenco seguente descrive i layout di stack.The following list describes the stack layouts.

Altre funzionalità di layout di StackOther Features of Stack Layouts

Alignment Determina la fine del ToolStrip a cui l'elemento è allineato.Alignment determines the end of the ToolStrip to which the item is aligned.

Quando gli elementi non corrispondono all'interno di ToolStrip, viene automaticamente visualizzato un pulsante di overflow.When items do not fit within the ToolStrip, an overflow button automatically appears. Il Overflow l'impostazione della proprietà determina se un elemento deve essere visualizzato nell'area di overflow, in base alle esigenze o mai.The Overflow property setting determines whether an item appears in the overflow area always, as needed, or never.

Nel LayoutCompleted evento, è possibile esaminare il Placement proprietà per determinare se un elemento è stato inserito nella classe principale ToolStrip, l'overflow ToolStrip, o se non è visualizzato affatto.In the LayoutCompleted event, you can inspect the Placement property to determine whether an item was placed on the main ToolStrip, the overflow ToolStrip, or if it is not currently showing at all. Le cause tipiche perché non viene visualizzato un elemento sono che sul principale non è sufficienti per l'elemento ToolStrip e la relativa Overflow è stata impostata su Never.The typical reasons why an item is not displayed are that the item did not fit on the main ToolStrip and its Overflow property was set to Never.

Rendere un ToolStrip mobile inserendolo un ToolStripPanel e l'impostazione relativa GripStyle a Visible.Make a ToolStrip movable by putting it in a ToolStripPanel and setting its GripStyle to Visible.

Altre opzioni di LayoutOther Layout Options

Le altre opzioni di layout sono Flow e Table.The other layout options are Flow and Table.

Layout di flussoFlow Layout

Flow layout è quello predefinito per ContextMenuStrip, ToolStripDropDownMenu, e ToolStripOverflow.Flow layout is the default for ContextMenuStrip, ToolStripDropDownMenu, and ToolStripOverflow. È simile al FlowLayoutPanel.It is similar to the FlowLayoutPanel. Le funzionalità di Flow layout sono i seguenti:The features of Flow layout are as follows:

Layout tabellaTable Layout

Table layout è quello predefinito StatusStrip.Table layout is the default for StatusStrip. È simile a TableLayoutPanel.It is similar to TableLayoutPanel. Le funzionalità di Flow layout sono i seguenti:The features of Flow layout are as follows:

ToolStripItemToolStripItem

Gli argomenti seguenti descrivono ToolStripItem e i controlli che derivano da essa.The following topics describe ToolStripItem and the controls that derive from it.

ToolStripItem è la classe base astratta per tutti gli elementi che costituiscono un ToolStrip.ToolStripItem is the abstract base class for all the items that go into a ToolStrip. L'oggetto seguente modello Mostra il ToolStripItem gerarchia di ereditarietà.The following object model shows the ToolStripItem inheritance hierarchy.

Modello a oggetti ToolStripItemToolStripItem Object Model
Modello a oggetti ToolStripItemToolStripItem object model

ToolStripItem classi di ereditare direttamente da ToolStripItem, o ereditare indirettamente ToolStripItem attraverso ToolStripControlHost o ToolStripDropDownItem.ToolStripItem classes either inherit directly from ToolStripItem, or they inherit indirectly from ToolStripItem through ToolStripControlHost or ToolStripDropDownItem.

ToolStripItem i controlli devono essere contenuti in un ToolStrip, MenuStrip, StatusStrip, o ContextMenuStrip e non possono essere aggiunti direttamente a un form.ToolStripItem controls must be contained in a ToolStrip, MenuStrip, StatusStrip, or ContextMenuStrip and cannot be added directly to a form. Le varie classi di contenitori sono progettate per contenere un sottoinsieme appropriato di ToolStripItem controlli.The various container classes are designed to contain an appropriate subset of ToolStripItem controls.

La tabella seguente elenca le scorte ToolStripItem controlli e i contenitori in cui sono più appropriati.The following table lists the stock ToolStripItem controls and the containers in which they look best. Anche se uno qualsiasi ToolStrip elemento possa essere ospitato in qualsiasi ToolStrip-contenitore, derivato questi elementi sono stati progettati per essere inserito in contenitori seguenti:Although any ToolStrip item can be hosted in any ToolStrip-derived container, these items were designed to look best in the following containers:

Nota

ToolStripDropDown non viene visualizzato nella casella degli strumenti della finestra di progettazione.ToolStripDropDown does not appear in the designer toolbox.

Elemento contenutoContained item ToolStripToolStrip MenuStripMenuStrip ContextMenuStripContextMenuStrip StatusStripStatusStrip ToolStripDropDownToolStripDropDown
ToolStripButton YesYes NoNo NoNo NoNo YesYes
ToolStripComboBox YesYes YesYes YesYes NoNo YesYes
ToolStripSplitButton YesYes NoNo NoNo YesYes YesYes
ToolStripLabel YesYes NoNo NoNo YesYes YesYes
ToolStripSeparator YesYes YesYes YesYes NoNo YesYes
ToolStripDropDownButton YesYes NoNo NoNo YesYes YesYes
ToolStripTextBox YesYes YesYes YesYes NoNo Yes
ToolStripMenuItem NoNo YesYes YesYes NoNo NoNo
ToolStripStatusLabel NoNo NoNo NoNo Yes NoNo
ToolStripProgressBar Yes NoNo NoNo Yes NoNo
ToolStripControlHost YesYes YesYes NoNo YesYes YesYes

ToolStripButtonToolStripButton

ToolStripButton è l'elemento pulsante ToolStrip.ToolStripButton is the button item for ToolStrip. È possibile visualizzarla con vari stili di bordo ed è possibile usarlo per rappresentare e attivare gli stati operativi.You can display it with various border styles, and you can use it to represent and activate operational states. È anche possibile definire in modo che abbia lo stato attivo per impostazione predefinita.You can also define it to have the focus by default.

ToolStripLabelToolStripLabel

Il ToolStripLabel fornisce funzionalità di etichetta in ToolStrip controlli.The ToolStripLabel provides label functionality in ToolStrip controls. Il ToolStripLabel è simile a un ToolStripButton che non riceve lo stato attivo per impostazione predefinita e non sottoposto a rendering come premuto o evidenziato.The ToolStripLabel is like a ToolStripButton that does not get focus by default and that does not render as pushed or highlighted.

ToolStripLabel come un elemento host supporta le chiavi di accesso.ToolStripLabel as a hosted item supports access keys.

Usare la LinkColor, LinkVisited, e LinkBehavior delle proprietà in un ToolStripLabel per supportare il controllo di collegamento in un ToolStrip.Use the LinkColor, LinkVisited, and LinkBehavior properties on a ToolStripLabel to support link control in a ToolStrip.

ToolStripStatusLabelToolStripStatusLabel

ToolStripStatusLabel è una versione di ToolStripLabel progettata appositamente per l'utilizzo in StatusStrip.ToolStripStatusLabel is a version of ToolStripLabel designed specifically for use in StatusStrip. Le funzionalità speciali includono BorderStyle, BorderSides, e Spring.The special features include BorderStyle, BorderSides, and Spring.

ToolStripSeparatorToolStripSeparator

Il ToolStripSeparator aggiunge una linea verticale oppure orizzontale a una barra degli strumenti o menu, a seconda dell'orientamento.The ToolStripSeparator adds a vertical or horizontal line to a toolbar or menu, depending on the orientation. Fornisce il raggruppamento o distinguere tra elementi, ad esempio quelli di un menu.It provides grouping of or distinction between items, such as those on a menu.

È possibile aggiungere un ToolStripSeparator in fase di progettazione selezionandolo dall'elenco elenco a discesa.You can add a ToolStripSeparator at design time by choosing it from a drop-down list. Tuttavia, è anche possibile creare automaticamente un ToolStripSeparator digitando un segno meno (-) nel nodo modello della finestra di progettazione o nel Add (metodo).However, you can also automatically create a ToolStripSeparator by typing a hyphen (-) in either the designer template node or in the Add method.

ToolStripControlHostToolStripControlHost

ToolStripControlHost è la classe base astratta per ToolStripComboBox, ToolStripTextBox, e ToolStripProgressBar.ToolStripControlHost is the abstract base class for ToolStripComboBox, ToolStripTextBox, and ToolStripProgressBar. ToolStripControlHost può ospitare altri controlli, inclusi i controlli personalizzati, in due modi:ToolStripControlHost can host other controls, including custom controls, in two ways:

  • Creare un ToolStripControlHost con una classe che deriva da Control.Construct a ToolStripControlHost with a class that derives from Control. Per un accesso completo al controllo contenuto e le proprietà, è necessario eseguire il cast di Control proprietà per l'effettivo della classe rappresenta.To fully access the hosted control and properties, you must cast the Control property back to the actual class it represents.

  • Estendere ToolStripControlHoste nel costruttore predefinito della classe ereditata, chiamare il costruttore di classe di base passando a una classe che deriva da Control.Extend ToolStripControlHost, and in the inherited class's default constructor, call the base class constructor passing a class that derives from Control. Questa opzione consente di eseguire il wrapping di metodi di controllo comuni e proprietà per semplificare l'accesso in un ToolStrip.This option lets you wrap common control methods and properties for easy access in a ToolStrip.

ToolStripComboBoxToolStripComboBox

ToolStripComboBox è il ComboBox ottimizzata per l'hosting in un ToolStrip.ToolStripComboBox is the ComboBox optimized for hosting in a ToolStrip. Un subset di proprietà ed eventi del controllo ospitato sono esposti al ToolStripComboBox livello, ma sottostante ComboBox controllo risulta accessibile tramite il ComboBox proprietà.A subset of the hosted control's properties and events are exposed at the ToolStripComboBox level, but the underlying ComboBox control is fully accessible through the ComboBox property.

ToolStripTextBoxToolStripTextBox

ToolStripTextBox è il TextBox ottimizzata per l'hosting in un ToolStrip.ToolStripTextBox is the TextBox optimized for hosting in a ToolStrip. Un subset di proprietà ed eventi del controllo ospitato sono esposti al ToolStripTextBox livello, ma sottostante TextBox controllo risulta accessibile tramite il TextBox proprietà.A subset of the hosted control's properties and events are exposed at the ToolStripTextBox level, but the underlying TextBox control is fully accessible through the TextBox property.

ToolStripProgressBarToolStripProgressBar

ToolStripProgressBar è il ProgressBar ottimizzata per l'hosting in un ToolStrip.ToolStripProgressBar is the ProgressBar optimized for hosting in a ToolStrip. Un subset di proprietà ed eventi del controllo ospitato sono esposti al ToolStripProgressBar livello, ma sottostante ProgressBar controllo risulta accessibile tramite il ProgressBar proprietà.A subset of the hosted control's properties and events are exposed at the ToolStripProgressBar level, but the underlying ProgressBar control is fully accessible through the ProgressBar property.

ToolStripDropDownItemToolStripDropDownItem

ToolStripDropDownItem è la classe base astratta per ToolStripMenuItem, ToolStripDropDownButton, e ToolStripSplitButton, che possono ospitare direttamente gli elementi o elementi di altri host in un contenitore di elenco a discesa.ToolStripDropDownItem is the abstract base class for ToolStripMenuItem, ToolStripDropDownButton, and ToolStripSplitButton, which can host items directly or host additional items in a drop-down container. A questo scopo, impostare il DropDown proprietà per un ToolStripDropDown e impostando il Items proprietà del ToolStripDropDown.You do this by setting the DropDown property to a ToolStripDropDown and setting the Items property of the ToolStripDropDown. Accedere a questi elementi di elenco a discesa direttamente tramiti il DropDownItems proprietà.Access these drop-down items directly through the DropDownItems property.

ToolStripMenuItemToolStripMenuItem

ToolStripMenuItem è un ToolStripDropDownItem che interagisce con ToolStripDropDownMenu e ContextMenuStrip per gestire la disposizione di colonna, layout e l'evidenziazione speciale per i menu.ToolStripMenuItem is a ToolStripDropDownItem that works with ToolStripDropDownMenu and ContextMenuStrip to handle the special highlighting, layout, and column arrangement for menus.

ToolStripDropDownButtonToolStripDropDownButton

ToolStripDropDownButton aspetto ToolStripButton, ma mostra un'area di riepilogo a discesa quando viene selezionato dall'utente.ToolStripDropDownButton looks like ToolStripButton, but it shows a drop-down area when the user clicks it. Visualizzare o nascondere la freccia giù, impostando il ShowDropDownArrow proprietà.Hide or show the drop-down arrow by setting the ShowDropDownArrow property. ToolStripDropDownButton ospita una ToolStripOverflowButton che consente di visualizzare gli elementi di overflow di ToolStrip.ToolStripDropDownButton hosts a ToolStripOverflowButton that displays items that overflow the ToolStrip.

ToolStripSplitButtonToolStripSplitButton

ToolStripSplitButton Combina le funzionalità di pulsante e pulsante a discesa.ToolStripSplitButton combines button and drop-down button functionality.

Usare la DefaultItem proprietà per sincronizzare il Click evento della voce di elenco a discesa scelta con l'elemento visualizzato sul pulsante.Use the DefaultItem property to synchronize the Click event of the chosen drop-down item with the item shown on the button.

Funzionalità generiche di ToolStripItemToolStripItem Generic Features

ToolStripItem fornisce le seguenti funzionalità generiche e le opzioni per i controlli che ereditano:ToolStripItem provides the following generic features and options to inheriting controls:

  • Eventi principaliCore events

  • Gestione delle immaginiImage handling

  • AllineamentoAlignment

  • Relazione di tipo text e imageText and image relationship

  • Stile di visualizzazioneDisplay style

Eventi principaliCore Events

ToolStripItem controlli ricevono le proprie risorse, mouse e gli eventi di disegno fare clic su e possono eseguire qualche pre-elaborazione anche dalla tastiera.ToolStripItem controls receive their own click, mouse, and paint events, and can perform some keyboard preprocessing also.

Gestione delle immaginiImage Handling

Il Image, ImageAlign, ImageIndex, ImageKey, e ImageScaling riguardano i vari aspetti della gestione delle immagini.The Image, ImageAlign, ImageIndex, ImageKey, and ImageScaling properties pertain to various aspects of image handling. Utilizzare le immagini nei ToolStrip controlli impostando direttamente queste proprietà o impostando l'esecuzione solo in fase di ImageList proprietà.Use images in ToolStrip controls by setting these properties directly or by setting the run-time–only ImageList property.

Il ridimensionamento delle immagini è determinato dall'interazione delle proprietà in entrambe ToolStrip e ToolStripItem, come indicato di seguito:Image scaling is determined by the interaction of properties in both ToolStrip and ToolStripItem, as follows:

AllineamentoAlignment

Il valore della Alignment proprietà determina la fine del ToolStrip in cui viene visualizzato un elemento.The value of the Alignment property determines the end of the ToolStrip at which an item appears. Il Alignment proprietà viene utilizzata solo quando lo stile di layout del ToolStrip è impostato su uno dei valori di overflow dello stack.The Alignment property works only when the layout style of the ToolStrip is set to one of the stack overflow values.

Gli elementi vengono inseriti nel ToolStrip nell'ordine in cui vengono visualizzati gli elementi della raccolta di elementi.Items are placed on the ToolStrip in the order in which the items appear in the Items collection. Per modificare a livello di codice in cui viene disposta un elemento, usare il Insert metodo per spostare l'elemento nella raccolta.To programmatically change where an item is laid out, use the Insert method to move the item in the collection. Questo metodo consente di spostare l'elemento ma non duplicarla.This method moves the item but does not duplicate it.

Testo e immagine relazioneText and Image Relationship

Il TextImageRelation proprietà definisce la posizione relativa dell'immagine rispetto al testo su un ToolStripItem.The TextImageRelation property defines the relative placement of the image with respect to the text on a ToolStripItem. Gli elementi che non dispongono di un'immagine, testo o entrambi sono considerati come casi particolari, in modo che il ToolStripItem non visualizzi un'area vuota per gli elementi mancanti.Items that lack an image, text, or both are treated as special cases so that the ToolStripItem does not display a blank spot for the missing element or elements.

Stile di visualizzazioneDisplay Style

DisplayStyle Consente di impostare i valori delle proprietà di testo e immagine di un elemento mentre si visualizza solo gli elementi desiderati.DisplayStyle allows you to set the values of an item's Text and Image properties while displaying only what you want. Ciò in genere consente di modificare lo stile di visualizzazione quando viene visualizzato lo stesso elemento in un contesto diverso.This is typically used to change only the display style when showing the same item in a different context.

Classi degli accessoriAccessory Classes

Le classi che forniscono varie altre funzionalità includono:Classes that provide various other functionality include:

Vedere ancheSee also