Dela via


Översikt över Windows Forms-kontroller i Office-dokument

Windows Forms-kontroller är objekt som användare kan interagera med för att ange eller manipulera data. I projekt på dokumentnivå för Microsoft Office Excel och Microsoft Office Word kan du lägga till Windows Forms-kontroller i dokumentet eller arbetsboken i projektet vid designtillfället, eller så kan du programmatiskt lägga till dessa kontroller vid körning. Du kan programmatiskt lägga till dessa kontroller i alla öppna dokument eller kalkylblad vid körning i ett VSTO-tillägg för Excel eller Word.

Mer information finns i Så här lägger du till Windows Forms-kontroller i Office-dokument.

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.

Använda Windows Forms-kontroller

Du kan lägga till Windows Forms-kontroller i dokument och till anpassningsbara användargränssnittselement (UI), inklusive åtgärdsfönster, anpassade åtgärdsfönster och Windows-formulär. Windows Forms-kontroller har vanligtvis samma beteende på dokument som för dessa andra gränssnittselement, men det finns vissa skillnader. Mer information finns i Begränsningar för Windows Forms-kontroller i Office-dokument.

Beslutet om du vill lägga till Windows Forms-kontroller i ett dokument eller något annat gränssnittselement beror på flera faktorer. När du utformar användargränssnittet för din lösning bör du överväga användning av Windows Forms-kontroller enligt beskrivningen i följande tabell.

I ett dokument.

  • När du vill visa kontrollerna 100% av tiden.

  • När du vill att användarna ska ange data direkt i dokumentet, till exempel i formulärbaserade dokument där redigeringsytan är låst.

  • När du vill att kontrollerna ska visas i linje med data i dokumentet. Om du till exempel lägger till knappar i varje rad i ett listobjekt vill du att de ska vara i linje med varje listobjekt.

I åtgärdsfönstret eller i ett anpassat åtgärdsfönster.

  • När du vill ange kontextuell information till användaren.

  • När du bara vill att resultatet ska visas i dokumentet och inte frågekontrollerna och data.

  • ** När du vill se till att kontrollerna inte skrivs ut med dokumentet.

  • När du vill se till att kontrollerna inte stör vyn av dokumentet.

I ett Windows-formulär.

  • När du vill styra storleken på användargränssnittet.

  • När du vill förhindra att användare döljer eller tar bort kontrollerna.

  • När du vill hämta indata från användaren och förhindra att användaren gör något i dokumentet tills indata tas emot.

Lägga till Windows Forms-kontroller programmatiskt

Du kan lägga till Windows Forms-kontroller i Word-dokument och Excel-kalkylblad vid körningstid. Visual Studio Tools for Office-körningen innehåller hjälpmetoder för att lägga till de vanligaste Windows Forms-kontrollerna. Med hjälpmetoderna kan du snabbt lägga till kontroller i Ditt Office-dokument och få åtkomst till de kombinerade funktionerna för Windows Forms-kontroll och Office-relaterade funktioner i dessa kontroller.

Mer information finns i Lägga till kontroller i Office-dokument vid körning.

Använda Windows Forms-kontroller i projekt på dokumentnivå

Vissa aspekter av hur du använder Windows Forms-kontroller i dokument är unika för projekt på dokumentnivå, vilket gör att du kan utforma användargränssnittet för dokumentet med hjälp av Visual Studio-designern.

Skapa anpassade användarkontroller

Du kan lägga till en användarkontroll i projektet och sedan lägga till den i verktygslådan. Du kan sedan dra användarkontrollen direkt till dokumentet på samma sätt som du lägger till en Windows Forms-kontroll i dokumentet. Det finns några saker att tänka på när du skapar användarkontroller:

  • Skapa inte en förseglad användarkontroll. När du drar kontrollen till dokumentet genererar Visual Studio en omslutningsklass som härleds från användarkontrollen för att utöka den och stödja dess användning i dokumentet. Om användarkontrollen är förseglad kan Visual Studio inte generera omslutningsklassen.

  • Användarkontroller måste ha attributet inställt på ComVisibleAttributetrue. Användarkontroller som skapas i ett Office-projekt har det här attributet inställt på true som standard, men användarkontroller som ingår i externa projekt kanske inte har det här attributet inställt på true.

  • När du har lagt till en användarkontroll i dokumentet ska du inte byta namn på eller ta bort UserControl klassen från projektet. Om du behöver ändra namnet på en användarkontroll måste du först ta bort den från dokumentet och sedan lägga till den igen när namnet har ändrats.

Ordna kontroller vid designtillfället

Om du lägger till flera kontroller i word- och Excel-dokument vid designtillfället kan du snabbt ange justeringen för alla valda kontroller med hjälp av verktygsfälten Microsoft Office Word och Microsoft Office Excel i Visual Studio. Dessa verktygsfält är endast tillgängliga när ett dokument eller kalkylblad är öppet i designern.

När du väljer flera kontroller i designern kan du använda följande knappar i dessa verktygsfält för att ordna kontrollerna:

  • Justera vänster

  • Centrera mittpunkter

  • Justera rättigheter

  • Justera överkanter

  • Justera mittpartier

  • Justera nederkanter

  • Gör vågrätt avstånd lika med

  • Gör lodrätt avstånd lika med

Anmärkning

I Word-projekt aktiveras dessa knappar endast om de valda kontrollerna inte är i linje med text. Som standard är de kontroller som du lägger till i dokumentet vid designtillfället i linje med text.

Förhindra att gamla data visas i Excel-arbetsböcker vid inläsning

När du lägger till Windows Forms-kontroller i dokument eller kalkylblad vid designtillfället finns kontrollerna kvar i dokumentet när användaren stänger dokumentet. Kontroller som läggs till vid designtillfället kallas även för statiska kontroller.

När en Excel-arbetsbok som innehåller statiska kontroller öppnas visar arbetsboken en bitmapp över kontrollen i en ActiveX-kontroll tills anpassningskoden körs och läser in den faktiska kontrollen. Excel skapar den här bitmappen och lagrar den i arbetsboken när arbetsboken sparas. Bitmappen visar kontrollen som den visades förra gången arbetsboken sparades, inklusive alla data som kontrollen visade. Mer information om ActiveX-kontrollen som innehåller Windows Forms-kontroller och bitmappar finns i Begränsningar för Windows Forms-kontroller i Office-dokument.

Under vissa förhållanden läses koden inte in och endast bitmappen visas, till exempel när användaren öppnar arbetsboken i designläge. Om användaren öppnar arbetsboken på en dator som inte har Visual Studio Tools för Office-körning installerad kan anpassningen inte köras för att läsa in kontrollerna och därför visas bara kontrollens bitmapp. Du bör alltid ta bort personlig information från kontroller i arbetsböcker innan du sparar arbetsboken och skickar den till en annan användare för att säkerställa att din personliga information inte avslöjas av misstag.

Matcha kontrollstorleken till cellstorleken i ett Excel-kalkylblad

Du kan ange att kontrollen ska ändras automatiskt när den överordnade cellens storlek ändras. Mer information finns i Så här ändrar du storlek på kontroller i kalkylbladsceller.

Lägg till komponenter som delas av alla kalkylblad

Du kan lägga till komponenter som du vill dela mellan alla kalkylblad, till exempel en DataSet, i arbetsboksdesignern i stället för i kalkylbladen. Komponenten visas i komponentfältet.

Formel för inbäddning av kontroller i ett Excel-kalkylblad

När du väljer en kontroll i Excel visas =EMBED("WinForms.Control.Host","") i formelfältet. Den här texten är nödvändig och bör inte tas bort.

Layoutformat för kontroller i ett Word-dokument

När du lägger till en kontroll i Word-dokumentet i ett projekt på dokumentnivå med hjälp av Visual Studio-designern läggs kontrollen till i linje med text. Om du vill ändra layoutformatet för kontrollen högerklickar du på kontrollen och klickar sedan på Formatera kontroll. Välj ett omslutningsformat på sidan Layout i dialogrutan Formatera objekt .

När du lägger till en styrkontroll i ett Word-dokument vid körning, kan du ange layoutformatet för den nya styrkontrollen genom att använda olika metodöverbelastningar för kontrollklassen i ControlCollection klassen:

  • Om du vill lägga till kontrollen inbäddad i texten använder du en överlagrad version som accepterar en Range som anger var kontrollen ska placeras.

  • Om du vill lägga till kontrollen som en flytande form använder du en överlagring som accepterar kontrollens vänstra och översta koordinater.

    Mer information finns i Lägga till kontroller i Office-dokument vid körning.

    Om du öppnar en Word-mall i Visual Studio-designern kanske inte icke-inline-kontroller i mallen visas eftersom Visual Studio öppnar mallen i Normalvy. Om du vill visa kontrollerna ändrar du vyn till Utskriftslayout.

Kontroller utanför huvuddokumentets brödtext

Windows Forms-kontroller stöds inte i ett sidhuvud eller en sidfot eller i ett underdokument.

Lägga till komponenter vid designtillfället

Vissa kontroller eller komponenter visas inte i dokumentet och visas i stället i ett komponentfack. Visual Studio innehåller ett komponentfack för varje dokumentfönster. Komponentfältet visas bara på skärmen om det finns komponenter i dokumentet.