Legacy-formuliervelden

Legacy Formuliervelden

Aspose.Words FOSS voor .NET leest en manipuleert Word’s legacy (pre-content-control) formuliervelden — tekstinvoer, selectievakje en vervolgkeuzelijsten — via de FormField klasse en zijn drie gespecialiseerde veldsubklassen in Aspose.Words.Fields.


Lezen van Formulierveldwaarden

Document.Range.FormFields (een FormFieldCollection) biedt directe toegang tot elk legacy-formulierveld in een bereik zonder handmatig door de knooppuntboom te lopen. Elke FormField legt Name bloot (de bladwijzer-achtige identifier die wordt gebruikt om naar het veld te verwijzen), Type (een FieldType waarde die aangeeft welk type formulierveld het is), Result (de huidige waarde), Enabled, en help/status-tekst via HelpText/OwnHelp en StatusText/OwnStatus. SetTextInputValue(newValue) stelt een nieuwe waarde voor een tekstinvoerveld direct in. Indexeer in FormFieldCollection op bladwijzernaam (bijv. formFields["BookmarkName"]) om een specifiek veld op te halen, en Remove(formField) / RemoveAt(index) verwijderen velden uit de collectie.


Tekst-, selectievakje- en vervolgkeuzeveldtypen

De drie legacy-formulierveldtypen hebben elk een eigen klasse: FieldFormText (het FORMTEXT veld, overeenkomend met FieldType.FieldFormTextInput) voor vrije-tekst invoer, FieldFormCheckBox (het FORMCHECKBOX veld) voor een booleaanse schakelaar, en FieldFormDropDown (het FORMDROPDOWN veld) voor een keuzelijst. Op het onderliggende FormField knooppunt bepalen TextInputType (een TextFormFieldType waarde — Regular, Number, Date, CurrentDate, CurrentTime of Calculated) en TextInputFormat hoe de waarde van een tekstveld wordt geïnterpreteerd en opgemaakt; MaxLength begrenst de invoerlengte; TextInputDefault levert de standaardwaarde. Checked en Default zijn van toepassing op selectievakje-velden, waarbij IsCheckBoxExactSize/CheckBoxSize de weergegeven grootte regelen. Vervolgkeuzevelden bewaren hun optielijst in DropDownItems, een DropDownItemCollection die Add, Insert, Remove, Contains en IndexOf ondersteunt, plus DropDownSelectedIndex voor het momenteel geselecteerde item.


Tips en best practices

  • Gebruik Document.Range.FormFields in plaats van handmatig Document.Range.Fields op type te filteren — het is het directe, getypeerde toegangspunt voor legacy-formuliervelden.
  • Stel CalculateOnExit in wanneer de waarde van een formulierveld de herberekening van afhankelijke velden moet activeren zodra de gebruiker het veld verlaat.
  • FormField.EntryMacro / ExitMacro verwijzen naar VBA-macro-namen die in het oorspronkelijke document zijn geconfigureerd — ze lezen voert geen macro-code uit.
  • Controleer TextInputType voordat je de Result van een tekstveld als een getal of datum parseert — Regular-velden leggen geen formatbeperking op.

Veelvoorkomende problemen

ProbleemOorzaakOplossing
Indexeren van FormFieldCollection op bladwijzernaam geeft null terugDe bladwijzernaam van het formulierveld komt niet overeen, of het veld bestaat niet in het doorzochte bereikBevestig de exacte bladwijzernaam via FormField.Name tijdens het enumereren
Checkboxstatus wordt niet weergegeven na het instellen van CheckedDocument niet opgeslagen na wijzigingSla het document op na wijziging; Checked wordt gelezen bij de volgende toegang
Keuzelijst DropDownSelectedIndex buiten bereikIndex komt niet overeen met een item in DropDownItemsValideer de index ten opzichte van DropDownItems.Count voordat u deze instelt
Tekstveldwaarde niet toegepastDirecte eigenschapstoewijzing gebruikt in plaats van SetTextInputValueRoep SetTextInputValue(newValue) aan op de FormField

FAQ

Wat is het verschil tussen FormField en FieldFormText/FieldFormCheckBox/FieldFormDropDown?

FormField is het generieke knooppunt dat elk legacy-formulierveld vertegenwoordigt, bereikbaar via Document.Range.FormFields. FieldFormText, FieldFormCheckBox en FieldFormDropDown zijn de veld-specifieke klassen (afgeleid van Field) voor elk veldtype wanneer je in plaats daarvan via de algemene Field-collectie werkt.

Hoe haal ik alle formulierveldwaarden op in een document?

Doorloop Document.Range.FormFields en lees Name/Result op elke FormField.

Kan ik opties toevoegen aan een vervolgkeuzelijst-formulierveld?

Ja — FormField.DropDownItems is een DropDownItemCollection met Add(value), Insert(index, value) en Remove(name).

Zijn deze hetzelfde als moderne content controls?

Nee. Legacy-formuliervelden (FORMTEXT, FORMCHECKBOX, FORMDROPDOWN) bestaan vóór het gestructureerde documenttag-model (content control) van Word; beide kunnen in hetzelfde document voorkomen.


API Reference Samenvatting

Klasse / MethodeBeschrijving
Document.Range.FormFieldsDirecte toegang tot alle legacy-formuliervelden in een bereik
FormFieldGenerieke legacy-formulierveldknoop: naam, type, resultaat, ingeschakelde status
FormFieldCollectionCollectie van FormField objecten; geïndexeerd op bladwijzernaam, Remove()
FieldFormTextFORMTEXT veldklasse
FieldFormCheckBoxFORMCHECKBOX veldklasse
FieldFormDropDownFORMDROPDOWN veldklasse
TextFormFieldTypeEnum voor invoerformaat van tekstveld (Regular, Number, Date, etc.)
DropDownItemCollectionBewerkbare lijst met opties van een vervolgkeuzelijstveld

Zie ook

 Nederlands