MultiSlot Urklipp (4 / 9 steg)
Steg 4: Paketet metoder
Paketet klassen skapas av guiden behöver vissa fält och metoder för att
Låt vår kontroll komma åt i runtime inre objektet som hanterar den text som visas i kod redaktör. Vi behöver också vissa åtkomstmetoder.
Öppna filen MultiSlotClipboardPackage.cs filen och infoga fältet statiska heter thePackage precis efter definitionen av klassen:
statiska offentliga MultiSlotClipboardPackage thePackage;
Nu ta reda på metoden Initialize() och infogar följande rad i slutet av denna metod för att få referenser till objekt i den här klassen.
MultiSlotClipboardPackage.thePackage = detta.
Se till att inte ändra något som redan finns på den Initialize() metoden, som bör se ut så här:
skyddade omställning void Initialize()
{
Debug.WriteLine (sträng. Format (CultureInfo.CurrentCulture, "inmatning Initialize() av: {0}", här. ToString()));
Base. Initialize();
Lägg till våra kommandot hanterare för menyn (kommandon måste finnas i filen .vsct)
OleMenuCommandService mcs = GetService(typeof(IMenuCommandService)) som OleMenuCommandService;
om (null! = mcs)
{
Skapa kommandot för fönstret verktyg
CommandID toolwndCommandID = ny CommandID (GuidList.guidMultiSlotClipboardCmdSet, (int)PkgCmdIDList.cmdidMyTool);
MenuCommand menuToolWin = ny MenuCommand (ShowToolWindow, toolwndCommandID);
MCS. AddCommand (menuToolWin);
}
MultiSlotClipboardPackage.thePackage = detta.
}
Sedan behöver vi lägga till två metoder som kommer att utsätta den text manager och DTE objekt. Inuti klassen MultiSlotClipboardPackage Lägg till följande två metoder:
offentliga IVsTextManager getTextManager()
{
Return (IVsTextManager) GetService(typeof(SVsTextManager));
}
offentliga DTE Dte
{
get {avkastning (DTE)GetService(typeof(DTE));}
}
Detta avslutar de ändringar som behövs i paketet klassen MultiSlotClipboardPackage. Nu fokuserar vi våra ansträngningar på MinKontroll klassen att få den markerade texten och sätt in vad som finns inuti skåran på källa koden arkivera.