Condividi tramite


Classe ToolWindow

Una volta eseguito l'override da una classe derivata, rappresenta una finestra degli strumenti della finestra di progettazione generata per un linguaggio specifico di dominio.

Questa API non è conforme a CLS. 

Gerarchia di ereditarietà

System.Object
  Microsoft.VisualStudio.Shell.WindowPane
    Microsoft.VisualStudio.Modeling.Shell.ModelingWindowPane
      Microsoft.VisualStudio.Modeling.Shell.ToolWindow
        Microsoft.VisualStudio.Modeling.Shell.ModelExplorerToolWindow

Spazio dei nomi:  Microsoft.VisualStudio.Modeling.Shell
Assembly:  Microsoft.VisualStudio.Modeling.Sdk.Shell.12.0 (in Microsoft.VisualStudio.Modeling.Sdk.Shell.12.0.dll)

Sintassi

'Dichiarazione
<CLSCompliantAttribute(False)> _
Public MustInherit Class ToolWindow _
    Inherits ModelingWindowPane
[CLSCompliantAttribute(false)]
public abstract class ToolWindow : ModelingWindowPane

Il tipo ToolWindow espone i seguenti membri.

Costruttori

  Nome Descrizione
Metodo protetto ToolWindow Inizializza una nuova istanza della classe ToolWindow.

In alto

Proprietà

  Nome Descrizione
Proprietà pubblica ActiveInPlaceEditWindow Ottiene e imposta la finestra attiva per la modifica sul posto. (Ereditato da ModelingWindowPane)
Proprietà protetta. BitmapIndex Una volta eseguito l'override in una classe derivata, ottiene l'indice della bitmap visualizzato accanto al nome della finestra degli strumenti.
Proprietà protetta. BitmapResource Una volta eseguito l'override in una classe derivata, ottiene l'ID della risorsa della bitmap visualizzata accanto al nome della finestra degli strumenti.
Proprietà pubblica Content (Ereditato da WindowPane)
Proprietà pubblica DocData Ottiene un documento in memoria.
Proprietà protetta. EnableUndo Ottiene la finestra degli strumenti e abilita il comando Annulla.
Proprietà pubblica Frame Ottiene IVsWindowFrame che corrisponde a questa finestra. (Ereditato da ModelingWindowPane)
Proprietà protetta. HasSelectableObjects Ottiene la finestra degli strumenti e disabilita il comando Seleziona oggetti se un documento non viene caricato. (Esegue l'override di ModelingWindowPane.HasSelectableObjects).
Proprietà protetta. HasToolBar Ottiene la finestra degli strumenti e verifica se deve includere una barra degli strumenti.
Proprietà protetta. HelpService Ottiene il servizio della Guida. (Ereditato da ModelingWindowPane)
Proprietà protetta. InitializationMode (Ereditato da WindowPane)
Proprietà pubblica MenuService Ottiene il servizio dei comandi di menu. (Ereditato da ModelingWindowPane)
Proprietà pubblica PrimarySelection Ottiene il principale elemento selezionato nel riquadro della finestra. (Ereditato da ModelingWindowPane)
Proprietà protetta. SelectedElements Ottiene gli elementi che sono selezionati nel riquadro della finestra. (Ereditato da ModelingWindowPane)
Proprietà pubblica SelectionCount Ottiene il numero di elementi che sono selezionati nel riquadro della finestra. (Ereditato da ModelingWindowPane)
Proprietà protetta. SelectionHelpService Ottiene il servizio della Guida di selezione. (Ereditato da ModelingWindowPane)
Proprietà protetta. ServiceProvider Ottiene il provider di servizi locale per questo riquadro della finestra. (Ereditato da ModelingWindowPane)
Proprietà protetta. ToolBarHost Ottiene l'interfaccia IVsToolWindowToolbarHost che determina la modalità di visualizzazione delle barre degli strumenti nella finestra degli strumenti.
Proprietà protetta. ToolWindowFont Ottiene il tipo di carattere da utilizzare per la finestra degli strumenti.
Proprietà pubblica Window (Ereditato da WindowPane)
Proprietà pubblica WindowTitle Ottiene il titolo della finestra degli strumenti.

In alto

Metodi

  Nome Descrizione
Metodo protetto CommitPendingEditForCommand Una volta eseguita l'implementazione in una classe derivata, specifica se le modifiche in sospeso devono essere eseguite prima che un comando venga eseguito. (Ereditato da ModelingWindowPane)
Metodo protetto CountAllObjects Ottiene il numero di elementi nel riquadro della finestra. (Ereditato da ModelingWindowPane)
Metodo pubblico CountObjects Calcola il numero di elementi nel riquadro della finestra o nella selezione corrente. (Ereditato da ModelingWindowPane)
Metodo protetto CountSelectedObjects Ottiene il numero di elementi nella selezione corrente. (Ereditato da ModelingWindowPane)
Metodo pubblico Dispose() (Ereditato da WindowPane)
Metodo protetto Dispose(Boolean) Rilascia le risorse non gestite utilizzate da ToolWindow e, facoltativamente, le risorse gestite. (Esegue l'override di ModelingWindowPane.Dispose(Boolean)).
Metodo protetto DoSelectObjects Una volta eseguita l'implementazione in una classe derivata, selezionare gli elementi nel riquadro. (Ereditato da ModelingWindowPane)
Metodo pubblico Equals Determina se l'oggetto specificato equivale all'oggetto corrente. (Ereditato da Object)
Metodo protetto Finalize Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulitura prima che l'oggetto stesso venga recuperato dalla procedura di Garbage Collection. (Ereditato da Object)
Metodo protetto GetAllObjects Ottiene tutti gli elementi nel riquadro della finestra. (Ereditato da ModelingWindowPane)
Metodo pubblico GetComponentSelected Specifica se il componente specificato è selezionato. (Ereditato da ModelingWindowPane)
Metodo pubblico GetContainerSelected Specifica se il contenitore specificato è selezionato. (Ereditato da ModelingWindowPane)
Metodo pubblico GetHashCode Funge da funzione hash predefinita. (Ereditato da Object)
Metodo pubblico GetObjects Ottiene tutti gli elementi che sono attualmente selezionati o gli elementi che possono essere selezionati nel riquadro della finestra. (Ereditato da ModelingWindowPane)
Metodo pubblico GetSelectedComponents Ottiene i componenti che sono selezionati nel riquadro della finestra. (Ereditato da ModelingWindowPane)
Metodo protetto GetSelectedObjects Ottiene gli elementi che sono selezionati nel riquadro della finestra. (Ereditato da ModelingWindowPane)
Metodo protetto GetService Ottiene il servizio del tipo specificato.Eseguire l'override di questo metodo per restituire il servizio del comando di menu personalizzato (Ereditato da ModelingWindowPane)
Metodo pubblico GetSite Ottiene il sito impostato con SetSite. (Ereditato da ModelingWindowPane)
Metodo pubblico GetType Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblico Hide Nasconde il riquadro della finestra. (Ereditato da ModelingWindowPane)
Metodo protetto Initialize Inizializza una nuova istanza della classe ToolWindow. (Esegue l'override di WindowPane.Initialize()).
Metodo pubblico LoadUIState (Ereditato da WindowPane)
Metodo protetto MemberwiseClone Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo protetto OnAfterToolWindowCreate Inizializzazione di post-creazione.
Metodo protetto OnClose Rimuove gli oggetti del riquadro finestra dalla selezione di menu di scelta rapida alla chiusura del riquadro. (Ereditato da ModelingWindowPane)
Metodo protetto OnCreate Crea una finestra degli strumenti. (Esegue l'override di WindowPane.OnCreate()).
Metodo protetto OnDocumentWindowChanged Notifica alle classi derivate se un utente apporta una modifica nella finestra di documento.
Metodo protetto OnSelectionChanged Notifica ai listener di eventi dopo le modifiche alla selezione. (Ereditato da ModelingWindowPane)
Metodo protetto OnSelectionChanging Notifica ai listener di eventi prima delle modifiche alla selezione. (Ereditato da ModelingWindowPane)
Metodo protetto OnToolWindowCreate Ascolta le modifiche del frame in una finestra di documento
Metodo protetto PreProcessMessage Gestisce i messaggi delle finestre. (Ereditato da ModelingWindowPane)
Metodo pubblico SaveUIState (Ereditato da WindowPane)
Metodo pubblico SelectObjects Seleziona gli elementi nel riquadro della finestra. (Ereditato da ModelingWindowPane)
Metodo pubblico SetSelectedComponents(ICollection) Aggiunge i componenti specificati nel contenitore di selezione e invia una notifica della modifica di selezione alla shell. (Ereditato da ModelingWindowPane)
Metodo pubblico SetSelectedComponents(ICollection, SelectionTypes) Non implementato attualmente. (Ereditato da ModelingWindowPane)
Metodo pubblico SetSite Inizializza il riquadro della finestra nell'ambiente. (Ereditato da ModelingWindowPane)
Metodo pubblico Show Visualizza il riquadro della finestra, la porta in primo piano e la imposta come finestra attiva. (Ereditato da ModelingWindowPane)
Metodo pubblico ShowNoActivate Visualizza il riquadro della finestra, la porta in primo piano ma non la imposta come finestra attiva. (Ereditato da ModelingWindowPane)
Metodo pubblico ToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)

In alto

Eventi

  Nome Descrizione
Evento pubblico SelectionChanged Generato dopo la modifica della selezione nel riquadro della finestra. (Ereditato da ModelingWindowPane)
Evento pubblico SelectionChanging Generato prima della modifica della selezione nel riquadro della finestra. (Ereditato da ModelingWindowPane)

In alto

Implementazioni esplicite dell'interfaccia

  Nome Descrizione
Implementazione esplicita dell'interfacciaMetodo privato IVsWindowPane.ClosePane Obsoleta. (Ereditato da WindowPane)
Implementazione esplicita dell'interfacciaMetodo privato IVsUIElementPane.CloseUIElementPane (Ereditato da WindowPane)
Implementazione esplicita dell'interfacciaMetodo privato IVsWindowPane.CreatePaneWindow Obsoleta. (Ereditato da WindowPane)
Implementazione esplicita dell'interfacciaMetodo privato IVsUIElementPane.CreateUIElementPane (Ereditato da WindowPane)
Implementazione esplicita dell'interfacciaMetodo privato IOleCommandTarget.Exec (Ereditato da WindowPane)
Implementazione esplicita dell'interfacciaMetodo privato IVsWindowPane.GetDefaultSize Obsoleta. (Ereditato da WindowPane)
Implementazione esplicita dell'interfacciaMetodo privato IVsUIElementPane.GetDefaultUIElementSize (Ereditato da WindowPane)
Implementazione esplicita dell'interfacciaMetodo privato IServiceProvider.GetService (Ereditato da WindowPane)
Implementazione esplicita dell'interfacciaMetodo privato IVsUIElementPane.LoadUIElementState (Ereditato da WindowPane)
Implementazione esplicita dell'interfacciaMetodo privato IVsWindowPane.LoadViewState Obsoleta. (Ereditato da WindowPane)
Implementazione esplicita dell'interfacciaMetodo privato IOleCommandTarget.QueryStatus (Ereditato da WindowPane)
Implementazione esplicita dell'interfacciaMetodo privato IVsUIElementPane.SaveUIElementState (Ereditato da WindowPane)
Implementazione esplicita dell'interfacciaMetodo privato IVsWindowPane.SaveViewState Obsoleta. (Ereditato da WindowPane)
Implementazione esplicita dell'interfacciaMetodo privato IVsWindowPane.SetSite Obsoleta. (Ereditato da WindowPane)
Implementazione esplicita dell'interfacciaMetodo privato IVsUIElementPane.SetUIElementSite (Ereditato da WindowPane)
Implementazione esplicita dell'interfacciaMetodo privato IVsWindowPane.TranslateAccelerator Obsoleta. (Ereditato da WindowPane)
Implementazione esplicita dell'interfacciaMetodo privato IVsUIElementPane.TranslateUIElementAccelerator (Ereditato da WindowPane)

In alto

Note

Prima di poter aggiungere una finestra degli strumenti nella finestra di progettazione generata, è necessario registrare la finestra. Per ulteriori informazioni, vedere ModelingPackage.

Esempi

Nell'esempio seguente viene aggiunta una finestra degli strumenti denominata Finestra degli strumenti personalizzata a un progetto di linguaggio specifico di dominio denominato RegisterTools. Quando si apre il progetto nella finestra di progettazione generata, la scheda della finestra viene visualizzato accanto a Esplora soluzioni. Quando si fa clic su questa scheda, l'etichetta che legge Si tratta della finestra degli strumenti personalizzata viene visualizzata al centro della finestra degli strumenti.

Il codice registra la finestra degli strumenti:

using VSShellInterop = Microsoft.VisualStudio.Shell.Interop;
using VSShell = Microsoft.VisualStudio.Shell;
using DslShell = Microsoft.VisualStudio.Modeling.Shell;
using DslDesign = Microsoft.VisualStudio.Modeling.Design;
using VSTextTemplatingHost = Microsoft.VisualStudio.TextTemplating.VSHost;

namespace MS.RegisterTools.DslPackage
{
    [VSShell::ProvideToolWindowVisibility(typeof(CustomToolWindow), 
              Constants.RegisterToolsEditorFactoryId)]
    [VSShell::ProvideToolWindow(typeof(CustomToolWindow), 
              MultiInstances = false, 
              Style = VSShell::VsDockStyle.Tabbed, 
              Orientation = VSShell::ToolWindowOrientation.Right, 
              Window = "{3AE79031-E1BC-11D0-8F78-00A0C9110057}")]

    internal partial class RegisterToolsPackage
    {
        //Initializes the base class for the package
        protected override void Initialize()
        {
            base.Initialize();

            //Registers the custom tool window
            this.AddToolWindow(typeof(CustomToolWindow));
        }
    }
}

Questo codice definisce la finestra degli strumenti:

using System;
using System.Windows.Forms;
using VSShellInterop = Microsoft.VisualStudio.Shell.Interop;
using VSShell = Microsoft.VisualStudio.Shell;
using DslShell = Microsoft.VisualStudio.Modeling.Shell;
using DslDesign = Microsoft.VisualStudio.Modeling.Design;
using VSTextTemplatingHost = Microsoft.VisualStudio.TextTemplating.VSHost;

namespace MS.RegisterTools.DslPackage
{

    //Creates a tool window and gives it a title, icon, and label
    internal class CustomToolWindow : DslShell.ToolWindow
    {

        //defines a label
  private Label myLabel;
        
        //creates the tool window
  public CustomToolWindow(IServiceProvider serviceProvider) : base(serviceProvider)
  { 
  }

        //gets the icon for the tool window
        protected override int BitmapResource
        {
            get { return 104; }
        }

        //gets the index for the icon
        protected override int BitmapIndex
        {
            get { return 0; }
        }

        //gets the name of the tool window
        public override string WindowTitle
        {
            get { return "Custom Window"; }
        }

        //sets up a label
  protected override void OnToolWindowCreate()
  {
      this.myLabel = new Label();
this.myLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.myLabel.Text = "This is the custom tool window";
   }

        //puts a label on the tool window
  public override System.Windows.Forms.IWin32Window Window
  {
       get { return this.myLabel; }
  }
    }
}

Codice thread safe

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Vedere anche

Riferimenti

Spazio dei nomi Microsoft.VisualStudio.Modeling.Shell