Condividi tramite


Classe ToolWindow

Una volta eseguito 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.11.0 (in Microsoft.VisualStudio.Modeling.Sdk.Shell.11.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 di ToolWindow classe.

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 sottoposto a override in una classe derivata, ottiene l'indice della bitmap visualizzato accanto al nome della finestra degli strumenti.
Proprietà protetta. BitmapResource Una volta sottoposto a override in una classe derivata, ottiene l'ID della risorsa della bitmap visualizzato 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 consente Annulla comando.
Proprietà pubblica Frame ottiene IVsWindowFrame che corrisponde a questa finestra. (Ereditato da ModelingWindowPane)
Proprietà protetta. HasSelectableObjects Ottiene la finestra degli strumenti disabilita oggetti selezionati l'ordinamento 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 del comando di menu. (Ereditato da ModelingWindowPane)
Proprietà pubblica PrimarySelection Ottiene l'elemento selezionato primario nel riquadro. (Ereditato da ModelingWindowPane)
Proprietà protetta. SelectedElements Ottiene gli elementi selezionati nel riquadro. (Ereditato da ModelingWindowPane)
Proprietà pubblica SelectionCount Ottiene il numero di elementi selezionati nel riquadro. (Ereditato da ModelingWindowPane)
Proprietà protetta. SelectionHelpService Ottiene il servizio della guida di selezione. (Ereditato da ModelingWindowPane)
Proprietà protetta. ServiceProvider Ottiene il provider di servizi che è locale per questo riquadro. (Ereditato da ModelingWindowPane)
Proprietà protetta. ToolBarHost ottiene IVsToolWindowToolbarHost collegare, che determina come barre degli strumenti visualizzati 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 Quando implementato in una classe derivata, specifica se le modifiche in sospeso deve essere eseguito prima che un comando venga eseguito. (Ereditato da ModelingWindowPane)
Metodo protetto CountAllObjects Ottiene il numero di elementi nel riquadro. (Ereditato da ModelingWindowPane)
Metodo pubblico CountObjects Calcola il numero di elementi nel riquadro 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 risorse non gestite utilizzate da ToolWindow e facoltativamente dealloca risorse gestite. (Esegue l'override di ModelingWindowPane.Dispose(Boolean)).
Metodo protetto DoSelectObjects Quando implementato 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. (Ereditato da ModelingWindowPane)
Metodo pubblico GetComponentSelected Specifica se il componente specificato è selezionata. (Ereditato da ModelingWindowPane)
Metodo pubblico GetContainerSelected specifica se il contenitore specificato è selezionato. (Ereditato da ModelingWindowPane)
Metodo pubblico GetHashCode Funge da funzione hash per un determinato tipo. (Ereditato da Object)
Metodo pubblico GetObjects Ottiene tutti gli elementi che sono attualmente selezionati o gli elementi che possono essere selezionati nel riquadro. (Ereditato da ModelingWindowPane)
Metodo pubblico GetSelectedComponents Ottiene i componenti che vengono selezionate nel riquadro. (Ereditato da ModelingWindowPane)
Metodo protetto GetSelectedObjects Ottiene gli elementi selezionati nel riquadro. (Ereditato da ModelingWindowPane)
Metodo protetto GetService Ottiene il servizio del tipo specificato.Eseguire l'override di questo metodo per restituire il servizio personalizzato del comando di menu (Ereditato da ModelingWindowPane)
Metodo pubblico GetSite ottiene il sito cui è stato 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. (Ereditato da ModelingWindowPane)
Metodo protetto Initialize Inizializza una nuova istanza di ToolWindow classe. (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 riquadro dalla selezione di menu di scelta rapida quando il riquadro è chiuso. (Ereditato da ModelingWindowPane)
Metodo protetto OnCreate Crea una finestra degli strumenti. (Esegue l'override di WindowPane.OnCreate()).
Metodo protetto OnDocumentWindowChanged Notifica le classi derivate se l'utente apporta una modifica nella finestra del documento.
Metodo protetto OnSelectionChanged Notifica ai listener di eventi dopo le modifiche di selezione. (Ereditato da ModelingWindowPane)
Metodo protetto OnSelectionChanging Notifica ai listener di eventi prima delle modifiche di selezione. (Ereditato da ModelingWindowPane)
Metodo protetto OnToolWindowCreate Ascolto delle modifiche del frame in una finestra di documento
Metodo protetto PreProcessMessage Gestisce i messaggi della finestra. (Ereditato da ModelingWindowPane)
Metodo pubblico SaveUIState (Ereditato da WindowPane)
Metodo pubblico SelectObjects Selezionare gli elementi nel riquadro. (Ereditato da ModelingWindowPane)
Metodo pubblico SetSelectedComponents(ICollection) Aggiunta di componenti specificati nel contenitore di selezione e notifica shell della modifica di selezione. (Ereditato da ModelingWindowPane)
Metodo pubblico SetSelectedComponents(ICollection, SelectionTypes) Non implementato attualmente. (Ereditato da ModelingWindowPane)
Metodo pubblico SetSite Inizializza il riquadro nell'ambiente. (Ereditato da ModelingWindowPane)
Metodo pubblico Show Visualizzare il riquadro, lo stato incluso all'inizio e gli reso la finestra attiva. (Ereditato da ModelingWindowPane)
Metodo pubblico ShowNoActivate Visualizzare il riquadro, lo stato incluso all'inizio, ma gli non resa la 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 selezione nel riquadro è stato modificato. (Ereditato da ModelingWindowPane)
Evento pubblico SelectionChanging Generato prima della selezione nel riquadro. (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 alla finestra di progettazione generata, è necessario registrare la finestra.Per ulteriori informazioni, vedere [Microsoft.VisualStudio.Modeling.Shell.ModelingPackage].

Esempi

Nell'esempio seguente viene aggiunta una finestra degli strumenti chiamata Finestra degli strumenti personalizzata in un progetto di linguaggio specifico di dominio denominato RegisterTools.Quando si apre il progetto nella finestra di progettazione generata un'eccezione, la scheda per questa 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 verrà visualizzata al centro della finestra degli strumenti.

Tramite questo codice vengono registrate 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