Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Värdobjekt och värdkontroller är typer som hjälper dig att tillhandahålla programmeringsmodellen för Office-lösningar som skapas med hjälp av Office-utvecklingsverktygen i Visual Studio. Värdobjekt och värdkontroller interagerar med objektmodellerna i Microsoft Office Word och Microsoft Office Excel, som är baserade på COM, mer som att interagera med hanterade objekt som Windows Forms-kontroller.
Gäller för: Informationen i det här avsnittet gäller för projekt på dokumentnivå och VSTO-tilläggsprojekt för Excel och Word. Mer information finns i Funktioner som är tillgängliga efter Office-program och projekttyp.
Host-objekt
Värdobjekt är typer som finns överst i objektmodellhierarkier i Office-projekt. Visual Studio Tools for Office-körningen definierar följande värdobjekt för Word- och Excel-lösningar:
-
Var och en av dessa typer utökar ett objekt som finns internt i Word- eller Excel-objektmodellen, som kallas för ett internt Office-objekt. Till exempel utökar värdobjektet Document objektet Document, som definieras i den primära interop-sammansättningen för Word.
Värdobjekt har i allmänhet samma grundläggande funktioner som motsvarande Office-objekt, men utökas med följande funktioner:
Möjligheten att vara värd för hanterade kontroller, inklusive värdkontroller och Windows Forms-kontroller.
Rikare händelsemodeller. Vissa dokument-, arbetsboks- och kalkylbladshändelser i de inbyggda Word- och Excel-objektmodellerna höjs endast på programnivå. Värdobjekt tillhandahåller dessa händelser på dokumentnivå, så att det är enklare att hantera händelserna för ett visst dokument.
Förstå värdobjekt i projekt på dokumentnivå
I projekt på dokumentnivå tillhandahåller värdobjekt en startpunkt för din kod, och de har designers som hjälper dig att utveckla din lösning.
Värdobjekten Document och Worksheet har associerade designers som är den visuella representationen av dokumentet eller kalkylbladet, till exempel en Windows Forms-designer. Du kan använda den här designern för att ändra innehållet i dokumentet eller kalkylbladet direkt i Word eller Excel och dra kontroller till designytan. Mer information finns i Dokumentvärdobjekt och Kalkylbladsvärdobjekt.
Värdobjektet Workbook fungerar inte som en container för kontroller som har ett användargränssnitt. I stället fungerar designern för det här värdobjektet som ett komponentfack, vilket gör att du kan dra en komponent, till exempel en DataSet, till dess designyta. Mer information finns i Arbetsboksvärdobjekt.
Värdobjekt kan inte skapas programmatiskt i projekt på dokumentnivå. Använd i stället klasserna ThisDocument, ThisWorkbookeller Sheetn som Visual Studio automatiskt genererar i projektet vid designtillfället. Dessa genererade klasser härleds från värdobjekten och de tillhandahåller en startpunkt för din kod. Mer information finns i Programmatiska begränsningar för värdobjekt och värdkontroller.
Förstå värdobjekt i VSTO-tilläggsprojekt
När du skapar ett VSTO-tillägg har du inte åtkomst till några värdobjekt som standard. Du kan dock generera Document, Workbook, och Worksheet värdobjekt i Word- och Excel VSTO-tillägg under körtid.
När du har genererat ett värdobjekt kan du utföra uppgifter som att lägga till kontroller i dokument. För mer information, se Utöka Word-dokument och Excel-arbetsböcker i VSTO-tillägg vid körtid.
Värdkontroller
Värdkontroller utökar olika användargränssnittsobjekt (UI) i Word- och Excel-objektmodellerna, till exempel Microsoft.Office.Interop.Word.ContentControl och Range objekt.
Följande värdkontroller är tillgängliga för Excel-projekt:
-
Följande värdkontroller är tillgängliga för Word-projekt:
-
Värdkontroller som läggs till i Office-dokument fungerar som de ursprungliga Office-objekten. Värdkontroller har dock ytterligare funktioner, inklusive händelser och databindningsfunktioner. När du till exempel vill samla in händelser för ett inbyggt Range objekt i Excel måste du först hantera ändringshändelsen för kalkylbladet. Sedan måste du ta reda på om ändringen har inträffat i Range. Däremot har värdkontrollen NamedRangeChange händelse som du kan hantera direkt.
Relationen mellan ett värdobjekt och värdkontroller är liknande relationen mellan ett Windows Form och Windows Forms-kontroller. Precis som du skulle placera en textrutekontroll i ett Windows-formulär placerar du en NamedRange kontroll på ett Worksheet värdobjekt. Följande bild visar relationen mellan värdobjekt och värdkontroller.
Du kan också använda Windows Forms-kontroller i dina Office-lösningar genom att lägga till dem direkt på Dokumentytan i Word och Excel. Mer information finns i Översikt över Windows Forms-kontroller i Office-dokument.
Anmärkning
Det går inte att lägga till värdkontroller eller Windows Forms-kontroller i ett Word-underdokument.
Lägga till värdkontroller i dina dokument
I projekt på dokumentnivå kan du lägga till värdkontroller i dina Word-dokument eller Excel-kalkylblad vid designtillfället på följande sätt:
Lägg till värdkontroller i dokumentet vid designtillfället på samma sätt som du lägger till ett internt objekt.
Dra värdkontroller från verktygslådan till dina dokument och kalkylblad. Excel-värdkontroller är tillgängliga på fliken Excel-kontroller i Excel-projekt och Word-värdkontroller är tillgängliga på fliken Word-kontroller i Word-projekt.
Dra värdkontroller från fönstret Datakällor till dina dokument och kalkylblad. På så sätt kan du lägga till kontroller som redan är bundna till data. Mer information finns i Binda data till kontroller i Office-lösningar.
I projekt på dokumentnivå och VSTO-tillägg kan du också lägga till vissa värdkontroller i dokument under körning. Mer information finns i Lägga till kontroller i Office-dokument vid körning.
Mer information om hur du lägger till värdkontroller i dokument finns i följande avsnitt:
Anvisningar: Lägga till XMLMappedRange-kontroller i kalkylblad
Namnvärdkontroller
När du drar en värdkontroll från verktygslådan till dokumentet namnges kontrollen automatiskt med hjälp av kontrolltypen med ett inkrementellt tal i slutet. Bokmärken heter till exempel bookmark1, bookmark2 och så vidare. Om du använder de inbyggda funktionerna i Word eller Excel för att lägga till kontrollen kan du ge den ett specifikt namn när du skapar den. Du kan också byta namn på dina kontroller genom att ändra värdet för egenskapen Namn i fönstret Egenskaper .
Anmärkning
Du kan inte använda reserverade ord för att namnge värdkontroller. Om du till exempel lägger till en NamedRange kontroll i ett kalkylblad och ändrar namnet till System uppstår fel när du skapar projektet.
Ta bort värdkontroller
I projekt på dokumentnivå kan du ta bort värdkontroller vid designtillfället genom att välja kontrollen i Excel-kalkylbladet eller Word-dokumentet och trycka på ta bort . Du måste dock använda dialogrutan Definiera namn i Excel för att ta bort NamedRange kontroller.
Om du lägger till en värdkontroll i ett dokument vid designtillfället bör du inte ta bort den programmatiskt vid körning eftersom ett undantag utlöses nästa gång du försöker använda kontrollen i koden. Metoden Delete för en värdkontroll tar bara bort värdkontroller som läggs till i dokumentet under körningstid. Om du anropar värdkontrollens Delete-metod som skapades i design-läge genereras ett undantag.
Metoden Delete hos en NamedRange tar bara bort NamedRange om den lades till programmatiskt i kalkylbladet, som innebär att man skapar värdkontroller dynamiskt. Dynamiskt skapade värdkontroller kan också tas bort genom att skicka kontrollnamnet till metoden Remove, som hör till egenskapen Controls eller Controls. Mer information finns i Lägga till kontroller i Office-dokument vid körning.
Om slutanvändarna tar bort en värdkontroll från dokumentet vid körningen kan lösningen misslyckas på oväntade sätt. Du kan använda dokumentskyddsfunktionerna i Word och Excel för att skydda värdkontrollerna från att tas bort. Mer information finns i Office-utvecklingsexempel och genomgångar.
Anmärkning
Ta inte bort kontroller programmatiskt under Shutdown händelsehanteraren för dokumentet eller kalkylbladet. Gränssnittselementen är inte längre tillgängliga när händelsen Shutdown inträffar. Om du vill ta bort kontroller innan programmet stängs lägger du till koden i en annan händelsehanterare, till exempel BeforeClose eller BeforeSave.
Program mot värdkontrollhändelser
Ett sätt som värdkontroller utökar Office-objekt på är genom att lägga till händelser. Objektet Range i Excel och objektet Bookmark i Word har till exempel inga händelser, men Visual Studio Tools for Office runtime utökar dessa objekt genom att lägga till programmerbara händelser. Du kan komma åt och koda mot dessa händelser på samma sätt som du kommer åt händelser med kontroller i Windows Forms: via listrutan händelse i Visual Basic och händelseegenskapssidan i C#. Mer information finns i Genomgång: Program mot händelser i en NamedRange-kontroll.
Anmärkning
Du bör inte ange EnableEvents egenskapen för Application objektet i Excel till false. Om du anger den här egenskapen till false hindras Excel från att skapa händelser, inklusive händelser för värdkontroller.