Örökölt űrlapmezők
Örökölt űrlapmezők
Aspose.Words FOSS for .NET beolvassa és manipulálja a Word örökölt (tartalomvezérlő előtti) űrlapmezőit — szövegbevitel, jelölőnégyzet és legördülő mezők — a FormField osztály és annak három specializált mező alosztálya segítségével a Aspose.Words.Fields.
Űrlapmezők értékeinek olvasása
Document.Range.FormFields (a FormFieldCollection) közvetlen hozzáférést biztosít minden örökölt űrlapmezőhöz egy tartományon belül anélkül, hogy manuálisan bejárná a csomópontfát. Minden FormField feltárja a Name-t (a mező hivatkozására használt könyvjelző-stílusú azonosító), a Type-t (egy FieldType érték, amely meghatározza, milyen típusú űrlapmezőről van szó), a Result-t (az aktuális érték), a Enabled-t, valamint a súgó/állapotszöveget a HelpText/OwnHelp és a StatusText/OwnStatus segítségével. A SetTextInputValue(newValue) közvetlenül beállít egy új értéket egy szövegbevitel mezőhöz. Indexelj a FormFieldCollection-ba a könyvjelző neve szerint (pl. formFields["BookmarkName"]) egy konkrét mező lekéréséhez, és a Remove(formField) / RemoveAt(index) törli a mezőket a gyűjteményből.
Szöveg, jelölőnégyzet és legördülő mezők típusai
A három örökölt űrlapmező típusnak mindegyiknek van egy dedikált osztálya: FieldFormText (a FORMTEXT mező, amely a FieldType.FieldFormTextInput-nak felel meg) a szabad szövegbevitelhez, FieldFormCheckBox (a FORMCHECKBOX mező) egy logikai kapcsolóhoz, és FieldFormDropDown (a FORMDROPDOWN mező) egy választólistához. Az alapul szolgáló FormField csomóponton a TextInputType (egy TextFormFieldType érték — Regular, Number, Date, CurrentDate, CurrentTime vagy Calculated) és a TextInputFormat szabályozzák, hogyan értelmeződik és formázódik a szövegmező értéke; a MaxLength korlátozza a bemenet hosszát; a TextInputDefault biztosítja az alapértelmezett értéket. A Checked és a Default a jelölőnégyzet mezőkre vonatkoznak, a IsCheckBoxExactSize/CheckBoxSize pedig a megjelenített méretét irányítja. A legördülő mezők a lehetőséglistájukat a DropDownItems-ban tárolják, egy DropDownItemCollection, amely támogatja a Add, Insert, Remove, Contains és IndexOf elemeket, valamint a DropDownSelectedIndex a jelenleg kiválasztott elemhez.
Tippek és bevált gyakorlatok
- Használja a
Document.Range.FormFieldsaDocument.Range.Fieldstípus szerinti manuális szűrése helyett — ez a közvetlen, típusos belépési pont a régi űrlapmezők számára. - Állítsa be a
CalculateOnExitértéket, amikor egy űrlapmező értékének a felhasználó elhagyása után azonnal el kell indítania a függő mezők újraszámítását. - A
FormField.EntryMacro/ExitMacroa eredeti dokumentumban beállított VBA makrónevekre hivatkozik — ezek olvasása nem hajt végre semmilyen makrókódot. - Ellenőrizze a
TextInputTypeértéket, mielőtt a szövegmezőResultértékét számként vagy dátumként értelmezné — aRegularmezők nem tartalmaznak formátumkorlátozást.
Gyakori problémák
| Probléma | Ok | Javítás |
|---|---|---|
A FormFieldCollection indexelése a könyvjelző neve alapján null értéket ad vissza | A űrlapelem könyvjelző neve nem egyezik, vagy az elem nem létezik a keresett tartományban | Erősítse meg a pontos könyvjelző nevet a FormField.Name segítségével felsorolás közben |
A jelölőnégyzet állapota nem tükröződik a Checked beállítása után | A dokumentum nem lett mentve a módosítás után | A dokumentumot módosítás után mentse; a(z) Checked a következő hozzáféréskor kerül beolvasásra |
A(z) DropDownSelectedIndex legördülő érték kívül esik a tartományon | Az index nem felel meg egy elemnek a(z) DropDownItemsban | Az indexet ellenőrizze a(z) DropDownItems.Count szerint, mielőtt beállítaná |
| A szövegmező értéke nem lett alkalmazva | Közvetlen tulajdonság-értékadást használt a(z) SetTextInputValue helyett | Hívja a(z) SetTextInputValue(newValue) a(z) FormField -on |
FAQ
Mi a különbség a FormField és a FieldFormText/FieldFormCheckBox/FieldFormDropDown között?
FormField egy általános csomópont, amely bármely régi űrlapmezőt képvisel, és a Document.Range.FormFields segítségével érhető el. A FieldFormText, FieldFormCheckBox és FieldFormDropDown a mezőspecifikus osztályok (a Field osztályból származva) az egyes típusokhoz, amikor ahelyett a általános Field gyűjteményen keresztül dolgozunk.
Hogyan kapom meg az összes űrlapmező értékét egy dokumentumban?
Sorolja fel a Document.Range.FormFields elemet, és olvassa a Name/Result értékét minden FormField esetén.
Hozzáadhatok opciókat egy legördülő űrlapmezőhöz?
Igen — a FormField.DropDownItems egy DropDownItemCollection, amely Add(value), Insert(index, value) és Remove(name) tartalmaz.
Ugyanazok-e, mint a modern tartalomvezérlők?
Nem. A régi űrlapmezők (FORMTEXT, FORMCHECKBOX, FORMDROPDOWN) a Word strukturált dokumentumcímke (tartalomvezérlő) modellje előtt léteztek; mindkettő megjelenhet ugyanabban a dokumentumban.
API Reference összefoglaló
| Osztály / Metódus | Leírás |
|---|---|
Document.Range.FormFields | Közvetlen hozzáférés az összes örökölt űrlapmezőhöz egy tartományban |
FormField | Általános örökölt űrlapmező csomópont: név, típus, eredmény, engedélyezett állapot |
FormFieldCollection | A FormField objektumok gyűjteménye; indexelő könyvjelző név szerint, Remove() |
FieldFormText | FORMTEXT mező osztály |
FieldFormCheckBox | FORMCHECKBOX mező osztály |
FieldFormDropDown | FORMDROPDOWN mező osztály |
TextFormFieldType | Enum a szövegmező bemeneti formátumához (Regular, Number, Date, stb.) |
DropDownItemCollection | Szerkeszthető lista a legördülő mező opcióiról |