Riepilogo della tecnologia ToolStrip

Questo argomento riepiloga le informazioni relative al controllo ToolStrip e alle classi che ne supportano l'uso.

Il controllo ToolStrip e le classi associate forniscono una soluzione completa per creare barre degli strumenti, barre di stato e menu.

Namespaces (Spazi dei nomi)

System.Windows.Forms

Background

Con il controllo ToolStrip e le classi associate, è possibile creare funzionalità avanzate della barra degli strumenti con un aspetto e un comportamento coerenti e professionali. Il controllo ToolStrip e le classi offrono i seguenti vantaggi rispetto ai controlli precedenti:

  • Un modello di eventi più coerente.

  • Un comportamento più coerente in fase di progettazione, contenente elenchi di attività ed editor della raccolta di elementi.

  • Rendering personalizzato con ToolStripManager e ToolStripRenderer.

  • Raggruppamento verticale/orizzontale incorporato di funzionalità (condivisione di spazio orizzontale o verticale nell'area strumenti, se ancorata) con ToolStripContainer e ToolStripPanel.

  • Raggruppamento degli elementi in fase di progettazione e in fase di esecuzione con la proprietà AllowItemReorder.

  • Rilocazione degli elementi in un menu di overflow con la proprietà CanOverflow.

  • Posizione del controllo completamente configurabile con ToolStripContainer, ToolStripPanele ToolStripContentPanel.

  • Hosting di controlli ToolStrip, tradizionali o personalizzati con ToolStripControlHost.

  • Unione di controlli ToolStrip con ToolStripPanel.

ToolStrip è la classe base estendibile per MenuStrip, ContextMenuStrip e StatusStrip. Questi controlli sono contenitori ToolStripItem che ereditano il comportamento comune e la gestione degli eventi, estesi in modo tale che ogni implementazione gestisca il comportamento appropriato. I controlli derivati da ToolStripItem sono elencati nella seguente tabella. La classe base ToolStrip gestisce il disegno, l'input utente e gli eventi di trascinamento della selezione per questi controlli.

I controlli ToolStrip, MenuStrip, ContextMenuStrip e StatusStrip sostituiscono le barre degli strumenti, i menu, i menu di scelta rapida e le barre di stato precedenti, anche se tali controlli vengono mantenuti per compatibilità con le versioni precedenti.

Introduzione alle classi ToolStrip

La tabella seguente illustra le classi ToolStrip raggruppate per area tecnologica.

Area tecnologica Classe
Contenitori di barre di stato, stati e menu ToolStrip

MenuStrip

ContextMenuStrip

StatusStrip

ToolStripDropDownMenu
Elementi ToolStrip ToolStripLabel

ToolStripDropDownItem

ToolStripMenuItem

ToolStripButton

ToolStripStatusLabel

ToolStripSeparator

ToolStripControlHost

ToolStripComboBox

ToolStripTextBox

ToolStripProgressBar

ToolStripDropDownButton

ToolStripSplitButton
Titolo ToolStripContainer

ToolStripContentPanel

ToolStripPanel
Presentazione e rendering ToolStripManager

ToolStripRenderer

ToolStripProfessionalRenderer

ToolStripRenderMode

ToolStripManagerRenderMode

Funzionalità di ToolStrip in fase di progettazione

La famiglia di controlli ToolStrip offre un'ampia gamma di strumenti e modelli per la modifica sul posto e la definizione degli elementi fondamentali dell'interfaccia utente, per poter creare rapidamente un'applicazione funzionante.

Finestre di dialogo delle attività

In Visual Studio, facendo clic sullo smart tag di un controllo nella finestra di progettazione, viene visualizzato un elenco di attività che permette di accedere facilmente a molti comandi usati di frequente.

Editor della raccolta Items

In Visual Studio, quando si fa clic su Modifica elementi nell'elenco attività o si fa clic con il pulsante destro del mouse sul controllo e si seleziona Modifica elementi nel menu di scelta rapida, viene visualizzato l'editor della raccolta per il controllo. Gli Editor della raccolta permettono di aggiungere, rimuovere e riordinare gli elementi contenuti nel controllo. Si possono anche visualizzare e cambiare le proprietà per il controllo e per gli elementi del controllo.

Hosting di controlli

La classe ToolStripControlHost fornisce wrapper predefiniti per i controlli ToolStripComboBox, ToolStripTextBoxe ToolStripProgressBar. È anche possibile ospitare qualsiasi altri controllo esistente o COM in ToolStripControlHost.

Per un esempio di hosting dei controlli, vedere Procedura: Eseguire il wrapping di un controllo Windows Form con ToolStripControlHost.

Rendering

La classi ToolStrip implementano uno schema di rendering molto diverso da quello di altri controlli Windows Form. Con questo schema, è possibile applicare facilmente stili e temi.

Per applicare uno stile a ToolStrip e a tutti gli oggetti ToolStripItem in esso contenuti, non è necessario gestire l'evento Paint per ogni elemento. È invece possibile impostare la proprietà RenderMode su un valore di ToolStripRenderMode diverso da Custom. In alternativa, è possibile impostare Renderer direttamente su una classe che eredita dalla classe ToolStripRenderer. Impostando questa proprietà, viene automaticamente impostato RenderMode.

È possibile applicare lo stesso stile a più oggetti ToolStrip nella stessa applicazione impostando RenderMode su ManagerRenderMode e impostando la proprietà RenderMode o Renderer rispettivamente sul valore ToolStripManagerRenderMode desiderato o sul valore ToolStripRenderer.

Per esempi di rendering, vedere Procedura: Creare e impostare un renderer personalizzato per il controllo ToolStrip in Windows Form.

Stili e temi

ToolStrip e le classi associate permettono di supportare facilmente stili di visualizzazione e un aspetto personalizzato che non richiedono l'override dei metodi OnPaint per ogni elemento. Usare le proprietà DisplayStyle, RenderMode e Renderer.

Raggruppamento e ancoraggio

È possibile raggruppare, ancorare o posizionare in modo assoluto i controlli ToolStrip. Gli elementi ToolStrip vengono disposti in base alla proprietà LayoutEngine del contenitore.

Il Valore Dio è la capacità delle barre degli strumenti di condividere lo spazio orizzontale o verticale. Un Windows Form può contenere un oggetto ToolStripContainer che a sua volta contiene dei pannelli sui lati sinistro, destro, superiore e inferiore del form per posizionare e raggruppare i controlli ToolStrip, MenuStrip e StatusStrip. Più controlli ToolStrip vengono raggruppati verticalmente se li si inserisce nell'oggetto ToolStripContainer di sinistra o di destra. Vengono raggruppati orizzontalmente se li si inserisce nell'oggetto ToolStripContainer in alto o in basso. È possibile usare l'oggetto ToolStripContentPanel centrale di ToolStripContainer per posizionare i tradizionali controlli sul form.

Alcuni o tutti i controlli ToolStripContainer sono direttamente selezionabili in fase di progettazione e possono essere eliminati. ToolStripContainer è estendibile e comprimibile e viene ridimensionato con i controlli in esso contenuti.

L'ancoraggio è la specifica della posizione semplice di un controllo sul lato sinistro, destro, superiore o inferiore del modulo.

Il vantaggio del raggruppamento rispetto all'ancoraggio è che i controlli ToolStrip, MenuStrip e StatusStrip possono condividere lo spazio orizzontale o verticale con altri controlli.

La maggior parte dei controlli ToolStrip può essere ancorata al form come gli altri controlli, invece di usare il raggruppamento. Si può anche specificare che un ToolStrip controllo possa essere liberamente posizionato sul form rimuovendolo dall'oggetto ToolStripContainer e impostandone la proprietà Dock su None oppure se ne può specificare la posizione assoluta impostando la rispettiva proprietà Location. Vedere Procedura: Spostare un oggetto ToolStrip all'esterno di un toolStripContainer in un modulo.

Usare uno o più controlli ToolStripPanel per avere più flessibilità, soprattutto per le applicazioni con interfaccia a documenti multipli (MDI) o se non è necessario un oggetto ToolStripContainer. ToolStripPanel fornisce uno spazio ancorabile in cui posizionare e ancorare i controlli ToolStrip, ma non i controlli tradizionali. Per impostazione predefinita, l'oggetto ToolStripPanel non viene visualizzato nella casella degli strumenti della finestra di progettazione, ma è possibile inserirlo facendo clic con il pulsante destro del mouse sulla Casella degli strumenti e quindi scegliere Scegli elementi. Si può accedere a ToolStripPanel anche a livello di codice, come a qualsiasi altra classe.

ToolStrip, MenuStrip e StatusStrip consentono l'overflow degli elementi. Il comportamento di questi elementi è simile a quello che hanno sulle barre degli strumenti di Microsoft Office.

Vedi anche