Delen via


Inhoudscontrole

Inhoudsbesturingselementen bieden een manier om documenten en sjablonen met deze functies te ontwerpen:

Over inhoudsbesturingselementen

Inhoudsbesturingselementen bieden een gebruikersinterface die is geoptimaliseerd voor zowel gebruikersinvoer als afdrukken. Wanneer u een inhoudsbeheer toevoegt aan een document, wordt het besturingselement geïdentificeerd door een rand, een titel en tijdelijke tekst die de gebruiker instructies kan geven. De rand en de titel van het besturingselement worden niet weergegeven in afgedrukte versies van het document.

Als u bijvoorbeeld wilt dat de gebruiker een datum invoert in een sectie van uw document, kunt u een inhoudsbeheer voor datumkiezer toevoegen aan het document. Wanneer gebruikers op het besturingselement klikken, wordt het standaardinterface van de datumkiezer weergegeven. U kunt ook eigenschappen van het besturingselement instellen om de regionale agenda in te stellen die wordt weergegeven en om de datumnotatie op te geven. Nadat de gebruiker een datum heeft gekozen, wordt de gebruikersinterface van het besturingselement verborgen en wordt alleen de datum weergegeven als de gebruiker het document afdrukt.

Met inhoudsbesturingselementen kunt u ook het volgende doen:

  • Voorkomen dat gebruikers delen van een document bewerken of verwijderen. Dit is handig als u informatie hebt in een document of sjabloon die gebruikers moeten kunnen lezen, maar niet kunnen bewerken, of als u wilt dat gebruikers inhoudsbesturingselementen kunnen bewerken, maar niet verwijderen.

  • Koppel delen van een document of sjabloon aan gegevens. U kunt inhoudsbesturingselementen binden aan databasevelden, beheerde objecten in .NET Framework, XML-elementen die zijn opgeslagen in het document en andere gegevensbronnen.

    In projecten op documentniveau kunt u tijdens het ontwerpen of tijdens runtime inhoudsbesturingselementen toevoegen aan uw document. In VSTO-invoegtoepassingsprojecten kunt u inhoudsbesturingselementen toevoegen aan elk geopend document tijdens runtime. Zie Instructies voor meer informatie : Inhoudsbesturingselementen toevoegen aan Word-documenten.

Opmerking

U kunt inhoudsbesturingselementen alleen gebruiken in documenten die zijn opgeslagen in de Open XML-indeling. U kunt geen inhoudsbesturingselementen gebruiken in documenten die zijn opgeslagen in de Word 97-2003-documentindeling (.doc).

Typen inhoudsbesturingselementen

Er zijn negen verschillende typen inhoudsbesturingselementen die u aan documenten kunt toevoegen. De meeste inhoudsbesturingselementen hebben een bijbehorend type in de Microsoft.Office.Tools.Word naamruimte. U kunt ook een algemeen hulpprogramma ContentControlgebruiken dat alle beschikbare inhoudsbesturingselementen kan vertegenwoordigen. Zie Walkthrough: Een sjabloon maken met behulp van inhoudsbesturingselementen voor een overzicht waarin wordt gedemonstreerd hoe u elk van de beschikbare inhoudsbesturingselementen gebruikt.

Met een galerie met bouwstenen kunnen gebruikers een keuze maken uit een lijst met bouwstenen voor documenten die in een document kunnen worden ingevoegd. Een documentbouwsteen is een stuk inhoud dat meerdere keren is gemaakt om te worden gebruikt, zoals een gemeenschappelijke voorblad, een opgemaakte tabel of een koptekst. Zie het BuildingBlockGalleryContentControl type voor meer informatie. Zie wat er nieuw is voor ontwikkelaars in Word 2007 voor meer informatie over bouwstenen.

Selectievakje

Een selectievakje biedt een gebruikersinterface die een binaire status vertegenwoordigt: geselecteerd of uitgeschakeld.

In tegenstelling tot de andere typen inhoudsbesturingselementen biedt visual Studio Tools voor Office Runtime geen specifiek type dat een inhoudsbesturingselement voor selectievakjes vertegenwoordigt. Met andere woorden, er is geen CheckBoxContentControl type. U kunt echter nog steeds een inhoudsbeheer voor selectievakjes maken door programmatisch een algemeen ContentControl aan een document toe te voegen. Zie Inhoudsbesturingselementen voor selectievakjes in Word-projecten voor meer informatie.

Keuzelijst met invoervak

In een combinatievak wordt een lijst met items weergegeven die gebruikers kunnen selecteren. In tegenstelling tot een vervolgkeuzelijst kunnen gebruikers met een keuzelijst met invoervak hun eigen items toevoegen. Zie het ComboBoxContentControl type voor meer informatie.

Datumkiezer

Een datumkiezer biedt een agenda-gebruikersinterface voor het selecteren van een datum. De agenda wordt weergegeven wanneer de eindgebruiker op de vervolgkeuzepijl in het besturingselement klikt. U kunt regionale agenda's en verschillende datumnotaties gebruiken. Zie het DatePickerContentControl type voor meer informatie.

In een vervolgkeuzelijst wordt een lijst weergegeven met items die gebruikers kunnen selecteren. In tegenstelling tot een combo box kunnen gebruikers in de vervolgkeuzelijst geen elementen toevoegen of aanpassen. Zie het DropDownListContentControl type voor meer informatie.

Groep

Een groepsbesturingselement definieert een beveiligde regio van een document dat gebruikers niet kunnen bewerken of verwijderen. Een groepsbesturingselement kan alle documentitems bevatten, zoals tekst, tabellen, afbeeldingen en andere inhoudsbesturingselementen. Zie het GroupContentControl type voor meer informatie.

Afbeelding

Een afbeeldingscontrole toont een afbeelding. U kunt de afbeelding opgeven tijdens het ontwerp of de uitvoeringstijd, of gebruikers kunnen op dit besturingselement klikken om een afbeelding te selecteren die u in het document wilt invoegen. Zie het PictureContentControl type voor meer informatie.

Tekst met opmaak

Een rijke tekstbesturing bevat tekst of andere items, zoals tabellen, afbeeldingen of andere inhoudsbesturingen. Zie het RichTextContentControl type voor meer informatie.

Tekst zonder opmaak

Een platte-tekstcontrole bevat tekst. Een besturingselement voor tekst zonder opmaak kan geen andere items bevatten, zoals tabellen, afbeeldingen of andere inhoudsbesturingselementen. Bovendien heeft alle tekst in een besturingselement voor tekst zonder opmaak dezelfde opmaak. Als u bijvoorbeeld één woord cursief maakt van een zin die zich in een besturingselement voor tekst zonder opmaak bevindt, wordt alle tekst in het besturingselement cursief gemaakt. Zie het PlainTextContentControl type voor meer informatie.

Algemeen inhoudsbeheer

Een algemeen inhoudsbesturingselement is een ContentControl object dat een van de beschikbare typen inhoudsbesturingselementen kan vertegenwoordigen. U kunt een ContentControl object zo wijzigen dat het zich gedraagt als een ander type inhoudsbesturingselement met behulp van de Type eigenschap. Als u bijvoorbeeld een ContentControl object maakt dat een interface-element voor tekst zonder opmaak vertegenwoordigt, kunt u het tijdens de uitvoeringstijd wijzigen, zodat het zich gedraagt als een keuzelijst met invoervak.

U kunt objecten alleen tijdens runtime maken ContentControl , niet op ontwerptijd. Zie Instructies voor meer informatie : Inhoudsbesturingselementen toevoegen aan Word-documenten.

Algemene functies van inhoudsbesturingselementen

De meeste inhoudsbesturingselementen delen een set leden die u kunt gebruiken om algemene taken uit te voeren. In de volgende tabel worden enkele van de taken beschreven die u kunt uitvoeren met behulp van deze leden.

Voor deze taak: Ga als volgt te werk:
De tekst ophalen of instellen die in het besturingselement wordt weergegeven. Gebruik de eigenschap Text . Notitie: De PictureContentControl en ContentControl typen hebben deze eigenschap niet.
Haal of stel de tijdelijke tekst in die in het besturingselement wordt weergegeven totdat een gebruiker het besturingselement bewerkt, het besturingselement wordt gevuld met gegevens uit een gegevensbron of de inhoud van het besturingselement wordt verwijderd. Gebruik de eigenschap PlaceholderText . Notitie: Dit PictureContentControl type heeft deze eigenschap niet.
De titel ophalen of instellen die wordt weergegeven op de rand van het inhoudsbeheer wanneer de gebruiker erop klikt. Gebruik de eigenschap Titel .
Verwijder het besturingselement automatisch uit het document nadat de gebruiker het besturingselement heeft bewerkt. (De tekst in het besturingselement blijft in het document.) Gebruik de eigenschap Tijdelijk .
Voer code uit wanneer de gebruiker in het inhoudsbeheer klikt of wanneer de cursor programmatisch naar het inhoudsbeheer wordt verplaatst. Entering De gebeurtenis van het besturingselement afhandelen.
Voer code uit wanneer de gebruiker buiten het inhoudsbeheer klikt of wanneer de cursor programmatisch buiten het inhoudsbeheer wordt verplaatst. Behandel de gebeurtenis van het Exiting besturingselement.
Voer code uit nadat een inhoudsbesturingselement is toegevoegd aan het document als gevolg van het opnieuw uitvoeren of ongedaan maken van een bewerking. Added De gebeurtenis van het besturingselement afhandelen.
Voer code uit net voordat het inhoudsbeheer uit het document wordt verwijderd. Deleting De gebeurtenis van het besturingselement afhandelen.

Delen van documenten beveiligen met inhoudsbesturingselementen

Wanneer u een deel van een document beveiligt, voorkomt u dat gebruikers de inhoud in dat deel van het document wijzigen of verwijderen. Er zijn verschillende manieren waarop u delen van een document kunt beveiligen met behulp van inhoudsbesturingselementen.

Als het gebied dat u wilt beveiligen zich in een inhoudsbesturingselement bevindt, kunt u eigenschappen van het inhoudsbesturingselement gebruiken om te voorkomen dat gebruikers het besturingselement bewerken of verwijderen.

  • Met de eigenschap LockContents kunnen gebruikers de inhoud niet bewerken.

  • De eigenschap LockContentControl voorkomt dat gebruikers het besturingselement verwijderen.

    Als het gebied dat u wilt beveiligen zich niet in een inhoudsbesturingselement bevindt of als u een gebied met inhoudsbesturingselementen en andere typen inhoud wilt beveiligen, kunt u het hele gebied in een GroupContentControlgebied plaatsen. In tegenstelling tot andere inhoudsbesturingselementen biedt een GroupContentControl geen gebruikersinterface die zichtbaar is voor de gebruiker. Het enige doel is om een regio te definiëren die gebruikers niet kunnen bewerken.

Opmerking

Als u een GroupContentControl maakt dat ingebedde inhoudsbesturingselementen bevat, worden deze ingebedde inhoudsbesturingselementen niet automatisch beveiligd. U moet de eigenschap LockContents van elk ingesloten besturingselement gebruiken om te voorkomen dat gebruikers hun inhoud kunnen bewerken.

Zie Voor meer informatie over het gebruik van inhoudsbesturingselementen voor het beveiligen van delen van documenten : Delen van documenten beveiligen met behulp van inhoudsbesturingselementen.

Gegevens binden aan inhoudsbesturingselementen

U kunt gegevens in documenten weergeven door een inhoudsbeheer te koppelen aan een gegevensbron. Wanneer de gegevensbron wordt bijgewerkt, weerspiegelt het inhoudsbeheer de wijzigingen. U kunt wijzigingen ook weer opslaan in de gegevensbron.

Inhoudsbesturingselementen bieden de volgende opties voor gegevensbinding:

  • U kunt inhoudsbesturingselementen binden aan databasevelden of beheerde objecten met hetzelfde gegevensbindingsmodel als Windows Forms.

  • U kunt inhoudsbesturingselementen binden aan elementen in delen van XML (ook wel aangepaste XML-onderdelen genoemd) die zijn ingesloten in het document.

    Zie Gegevens binden aan besturingselementen in Office-oplossingen voor een overzicht van het binden van besturingselementen aan gegevens in Office-oplossingen.

Het Windows Forms-gegevensbindingsmodel gebruiken

De meeste inhoudsbesturingselementen ondersteunen het eenvoudige gegevensbindingsmodel dat door Windows Forms wordt gebruikt. Eenvoudige gegevensbinding betekent dat een besturingselement is gebonden aan één gegevenselement, zoals een waarde in een kolom van een gegevenstabel. Zie Gegevensbinding en Windows Forms voor meer informatie.

In projecten op documentniveau kunt u gegevens binden aan inhoudsbesturingselementen met behulp van het venster Gegevensbronnen in Visual Studio. Zie Hoe: Documenten vullen met gegevens uit een database en Hoe: Documenten vullen met gegevens uit objecten voor meer informatie over het toevoegen van inhoudsbesturingselementen aan documenten.

De volgende tabel bevat de inhoudsbesturingselementen die u kunt binden aan elk gegevenstype in het venster Gegevensbronnen .

Gegevenstype Standaardinhoudsbeheer Andere inhoudsbesturingselementen die aan dit gegevenstype kunnen worden gebonden
Boolean

Byte

Char

Double

Enum

Guid

Int16

Int32

Int64

SByte

Single

String

TimeSpan

UInt16

UInt32

UInt64
PlainTextContentControl BuildingBlockGalleryContentControl

ComboBoxContentControl

DatePickerContentControl

RichTextContentControl
DateTime DatePickerContentControl BuildingBlockGalleryContentControl

ComboBoxContentControl

PlainTextContentControl

RichTextContentControl
Image

Byte array
PictureContentControl Geen

In projecten op documentniveau en VSTO-invoegtoepassing kunt u een inhoudsbesturingselement programmatisch aan een gegevensbron koppelen met behulp van de Add methode van de DataBindings eigenschap van het besturingselement. Als u dit doet, geeft u de tekenreeks Text door aan de parameter propertyName van de Add methode. De eigenschap Text is de standaardeigenschap voor gegevensbinding van inhoudsbesturingselementen.

Inhoudsbesturingselementen bieden ook ondersteuning voor tweerichtingsgegevensbinding, waarin wijzigingen in het besturingselement worden bijgewerkt naar de gegevensbron. Voor meer informatie, zie Hoe: Een gegevensbron bijwerken met gegevens van een hostbesturing.

Opmerking

Inhoudsbesturingselementen bieden geen ondersteuning voor complexe gegevensbinding. Als u een DropDownListContentControl of ComboBoxContentControl met een gegevensbron verbindt met behulp van het Windows Forms-gegevensmodel, zien gebruikers slechts één waarde wanneer ze op het besturingselement klikken. Als u deze besturingselementen wilt binden aan een set gegevenswaarden waaruit gebruikers kunnen kiezen, kunt u deze besturingselementen binden aan elementen in een aangepast XML-onderdeel.

Inhoudsbesturingselementen binden aan aangepaste XML-onderdelen

U kunt bepaalde inhoudsbesturingselementen binden aan elementen in aangepaste XML-onderdelen die zijn ingesloten in het document. Zie het overzicht van aangepaste XML-onderdelen voor meer informatie over aangepaste XML-onderdelen.

Als u een inhoudsbesturingselement wilt binden aan een element in een aangepast XML-onderdeel, gebruikt u de eigenschap XMLMapping van het besturingselement. In het volgende codevoorbeeld ziet u hoe u een PlainTextContentControl aan het Price element onder het Product knooppunt koppelt in een aangepast XML-onderdeel dat al aan het document is toegevoegd.

plainTextContentControl1.XMLMapping.SetMapping("/Product/Price", String.Empty, null);

Zie Walkthrough: Inhoudsbesturingselementen binden aan aangepaste XML-onderdelen voor een overzicht van hoe u inhoudsbesturingselementen koppelt aan aangepaste XML-onderdelen.

Wanneer u een inhoudsbesturingselement koppelt aan een aangepast XML-onderdeel, wordt gegevensbinding in twee richtingen automatisch ingeschakeld. Als een gebruiker tekst in het besturingselement bewerkt, worden de bijbehorende XML-elementen automatisch bijgewerkt. Als elementwaarden in de aangepaste XML-onderdelen worden gewijzigd, worden de nieuwe gegevens weergegeven in de inhoudsbesturingselementen die zijn gebonden aan de XML-elementen.

U kunt de volgende typen inhoudsbesturingselementen koppelen aan aangepaste XML-onderdelen:

Gegevensbindgebeurtenissen voor inhoudsbesturingselementen

Alle inhoudsbesturingselementen bieden een set gebeurtenissen die u kunt afhandelen om gegevensgerelateerde taken uit te voeren, zoals het valideren dat de tekst in een besturingselement voldoet aan bepaalde criteria voordat de gegevensbron wordt bijgewerkt. De volgende tabel bevat de gebeurtenissen voor inhoudsbeheer die zijn gerelateerd aan gegevensbinding.

Opdracht Event
Voer code uit net voordat de tekst automatisch wordt bijgewerkt in een inhoudsbeheer dat is gebonden aan een aangepast XML-onderdeel. ContentUpdating
Voer code uit net voordat Word automatisch gegevens bijwerken in een aangepast XML-onderdeel dat is gebonden aan een inhoudsbeheer (dat wil zeggen, nadat de tekst in het inhoudsbeheer is gewijzigd). StoreUpdating
Voer uw eigen code uit om de inhoud van het besturingselement te valideren op basis van aangepaste criteria. Validating
Voer code uit nadat de inhoud van het besturingselement is gevalideerd. Validated

Beperkingen van inhoudsbesturingselementen

Wanneer u inhoudsbesturingselementen in uw Office-projecten gebruikt, moet u rekening houden met de volgende beperkingen.

Gedragsverschillen tussen ontwerptijd en runtime

Veel van de beperkingen die Microsoft Office Word oplegt voor inhoudsbesturingselementen tijdens runtime, worden niet afgedwongen tijdens het ontwerpen. Wanneer u de gebruikersinterface van een oplossing op documentniveau in Visual Studio ontwerpt, moet u inhoudsbesturingselementen alleen wijzigen op manieren die tijdens runtime worden ondersteund.

Als u tijdens het ontwerp een inhoudscontrole wijzigt op een manier die tijdens runtime niet wordt ondersteund, zal de Visual Studio-ontwerper u niet waarschuwen voor de niet-ondersteunde wijzigingen. Wanneer u echter fouten opspoort of het project uitvoert, of als u het project opslaat en vervolgens opnieuw opent, wordt in Word een foutmelding weergegeven en wordt er gevraagd om toestemming om het document te herstellen. Wanneer u het document herstelt, worden alle niet-ondersteunde inhoud en opmaak uit het besturingselement verwijderd.

In Word wordt bijvoorbeeld niet voorkomen dat u een tabel toevoegt aan een PlainTextContentControl tijdens het ontwerpen. Omdat PlainTextContentControl objecten echter geen tabellen tijdens runtime kunnen bevatten, wordt in Word een foutbericht weergegeven wanneer het document wordt geopend.

Houd er ook rekening mee dat veel eigenschappen die het gedrag van inhoudsbesturingselementen definiëren, geen effect hebben op het ontwerptijdstip. Als u bijvoorbeeld de eigenschap LockContents van een inhoudsbesturingselement instelt op Waar tijdens het ontwerp, kunt u nog steeds tekst bewerken in het besturingselement in de Visual Studio-ontwerpfunctie. Met deze eigenschap zorgt u ervoor dat gebruikers het besturingselement tijdens uitvoeringstijd niet kunnen bewerken.

Evenementbeperkingen

Inhoudsbesturingselementen bieden geen gebeurtenis die wordt gegenereerd wanneer de gebruiker tekst of andere items in het besturingselement wijzigt. Er is bijvoorbeeld geen gebeurtenis die wordt gegenereerd wanneer een gebruiker een ander item in een DropDownListContentControl of ComboBoxContentControlselecteert.

Als u wilt bepalen wanneer een gebruiker de inhoud van een inhoudsbesturingselement bewerkt, kunt u het besturingselement binden aan een aangepast XML-onderdeel en vervolgens de StoreUpdating gebeurtenis afhandelen. Deze gebeurtenis wordt gegenereerd wanneer de gebruiker de inhoud van een besturingselement wijzigt dat is gebonden aan een aangepast XML-onderdeel. Zie Walkthrough: Inhoudsbesturingselementen binden aan aangepaste XML-onderdelen voor een overzicht dat laat zien hoe u een inhoudsbesturingselement koppelt aan een aangepast XML-onderdeel.

Inhoudsbesturingselementen voor selectievakjes in Word-projecten

In Word 2010 is een nieuw type inhoudsbeheer geïntroduceerd dat een selectievakje vertegenwoordigt. Visual Studio Tools voor Office Runtime biedt echter geen bijbehorend type CheckBoxContentControl dat u in Office-projecten kunt gebruiken. Als u een inhoudsbeheer voor selectievakjes wilt maken in een Word 2013- of Word 2010-project, gebruikt u de AddContentControl methode om een ContentControl object te maken en geeft u de wdContentControlCheckBox waarde door aan de methode om een inhoudsbeheer voor selectievakjes op te geven. In het volgende codevoorbeeld ziet u hoe u dit doet.

this.Paragraphs[1].Range.InsertParagraphBefore();
this.Paragraphs[1].Range.Select();
Microsoft.Office.Tools.Word.ContentControl checkBoxControl1 = 
    this.Controls.AddContentControl("checkBoxControl1", Word.WdContentControlType.wdContentControlCheckBox);

checkBoxControl1.Checked = true;