Παλαιά Πεδία Φόρμας

Παλαιά Πεδία Φόρμας

Aspose.Words FOSS για .NET διαβάζει και χειρίζεται τα κληρονομικά (προ-έλεγχο περιεχομένου) πεδία φόρμας του Word — πεδία κειμένου, πλαίσια ελέγχου και πεδία πτυσσόμενης λίστας — μέσω της κλάσης FormField και των τριών εξειδικευμένων υποκλάσεων πεδίων σε Aspose.Words.Fields.


Ανάγνωση Τιμών Πεδίου Φόρμας

Document.Range.FormFields (ένα FormFieldCollection) παρέχει άμεση πρόσβαση σε κάθε κληρονομικό πεδίο φόρμας σε μια περιοχή χωρίς να χρειάζεται να διασχίζεται το δέντρο κόμβων χειροκίνητα. Κάθε FormField εκθέτει το Name (το αναγνωριστικό τύπου σελιδοδείκτη που χρησιμοποιείται για την αναφορά στο πεδίο), το Type (μια τιμή FieldType που προσδιορίζει τον τύπο του πεδίου φόρμας), το Result (την τρέχουσα τιμή), το Enabled, και κείμενο βοήθειας/κατάστασης μέσω HelpText/OwnHelp και StatusText/OwnStatus. Το SetTextInputValue(newValue) ορίζει νέα τιμή για ένα πεδίο κειμένου άμεσα. Δείξτε στο FormFieldCollection με το όνομα σελιδοδείκτη (π.χ. formFields["BookmarkName"]) για να ανακτήσετε ένα συγκεκριμένο πεδίο, και τα Remove(formField) / RemoveAt(index) διαγράφουν πεδία από τη συλλογή.


Τύποι Πεδίου Κειμένου, Πλαισίου Ελέγχου και Πτυσσόμενης Λίστας

Οι τρεις κληρονομικοί τύποι πεδίων φόρμας έχουν καθένας μια αφιερωμένη κλάση: FieldFormText (το πεδίο FORMTEXT, που αντιστοιχεί σε FieldType.FieldFormTextInput) για ελεύθερη εισαγωγή κειμένου, FieldFormCheckBox (το πεδίο FORMCHECKBOX) για λογική εναλλαγή, και FieldFormDropDown (το πεδίο FORMDROPDOWN) για λίστα επιλογών. Στον υποκείμενο κόμβο FormField, τα TextInputType (μια τιμή TextFormFieldType — Regular, Number, Date, CurrentDate, CurrentTime ή Calculated) και TextInputFormat ελέγχουν πώς ερμηνεύεται και μορφοποιείται η τιμή ενός πεδίου κειμένου· MaxLength περιορίζει το μήκος της εισόδου· TextInputDefault παρέχει την προεπιλεγμένη τιμή. Τα Checked και Default εφαρμόζονται σε πεδία πλαισίου ελέγχου, με τα IsCheckBoxExactSize/CheckBoxSize να ελέγχουν το εμφανιζόμενο μέγεθός του. Τα πεδία πτυσσόμενης λίστας διατηρούν τη λίστα επιλογών τους στο DropDownItems, ένα DropDownItemCollection που υποστηρίζει Add, Insert, Remove, Contains και IndexOf, καθώς και DropDownSelectedIndex για το τρέχον επιλεγμένο στοιχείο.


Συμβουλές και Καλές Πρακτικές

  • Χρησιμοποιήστε το Document.Range.FormFields αντί να φιλτράρετε χειροκίνητα το Document.Range.Fields κατά τύπο — είναι το άμεσο, τυποποιημένο σημείο εισόδου για τα παλιά πεδία φόρμας.
  • Ορίστε το CalculateOnExit όταν η τιμή ενός πεδίου φόρμας πρέπει να ενεργοποιήσει τον επαναϋπολογισμό των εξαρτημένων πεδίων αμέσως μόλις ο χρήστης το αφήσει.
  • Οι FormField.EntryMacro / ExitMacro αναφέρονται σε ονόματα μακροεντολών VBA που έχουν ρυθμιστεί στο αρχικό έγγραφο — η ανάγνωσή τους δεν εκτελεί κανέναν κώδικα μακροεντολής.
  • Ελέγξτε το TextInputType πριν αναλύσετε το Result ενός πεδίου κειμένου ως αριθμό ή ημερομηνία — τα πεδία Regular δεν επιβάλλουν περιορισμό μορφής.

Συνηθισμένα Προβλήματα

ΠρόβλημαΑιτίαΔιόρθωση
Η ευρετηρίαση του FormFieldCollection με όνομα σελιδοδείκτη επιστρέφει nullΤο όνομα σελιδοδείκτη του πεδίου φόρμας δεν ταιριάζει, ή το πεδίο δεν υπάρχει στην αναζητούμενη περιοχήΕπιβεβαιώστε το ακριβές όνομα σελιδοδείκτη μέσω του FormField.Name κατά την απαρίθμηση
Η κατάσταση του πλαισίου ελέγχου δεν αντανακλάται μετά τη ρύθμιση του CheckedΤο έγγραφο δεν αποθηκεύεται μετά την τροποποίησηΑποθηκεύστε το έγγραφο μετά την τροποποίηση; Checked διαβάζεται στην επόμενη πρόσβαση
Η λίστα επιλογών DropDownSelectedIndex εκτός εύρουςΤο ευρετήριο δεν αντιστοιχεί σε στοιχείο στο DropDownItemsΕπικυρώστε το ευρετήριο έναντι του DropDownItems.Count πριν το ορίσετε
Η τιμή του πεδίου κειμένου δεν εφαρμόστηκεΧρησιμοποιήθηκε άμεση εκχώρηση ιδιότητας αντί του SetTextInputValueΚαλέστε το SetTextInputValue(newValue) στο FormField

FAQ

Ποια είναι η διαφορά μεταξύ του FormField και του FieldFormText/FieldFormCheckBox/FieldFormDropDown;

FormField είναι ο γενικός κόμβος που αντιπροσωπεύει οποιοδήποτε παλιό πεδίο φόρμας, προσβάσιμο μέσω του Document.Range.FormFields. Τα FieldFormText, FieldFormCheckBox και FieldFormDropDown είναι οι κλάσεις ειδικές για κάθε πεδίο (που κληρονομούν από το Field) για κάθε τύπο πεδίου όταν εργάζεστε μέσω της γενικής συλλογής Field.

Πώς μπορώ να πάρω όλες τις τιμές των πεδίων φόρμας σε ένα έγγραφο;

Απαριθμήστε Document.Range.FormFields και διαβάστε Name/Result σε κάθε FormField.

Μπορώ να προσθέσω επιλογές σε ένα πεδίο φόρμας πτυσσόμενου μενού;

Ναι — FormField.DropDownItems είναι ένα DropDownItemCollection με Add(value), Insert(index, value) και Remove(name).

Είναι αυτά τα ίδια με τα σύγχρονα στοιχεία ελέγχου περιεχομένου;

Όχι. Τα παλαιά πεδία φόρμας (FORMTEXT, FORMCHECKBOX, FORMDROPDOWN) προηγήθηκαν του μοντέλου ετικετών δομημένου εγγράφου (στοιχείο ελέγχου περιεχομένου) του Word· και τα δύο μπορούν να εμφανιστούν στο ίδιο έγγραφο.


API Reference Περίληψη

Κατηγορία / ΜέθοδοςΠεριγραφή
Document.Range.FormFieldsΆμεση πρόσβαση σε όλα τα κληρονομικά πεδία φόρμας σε ένα εύρος
FormFieldΓενικός κόμβος κληρονομικού πεδίου φόρμας: όνομα, τύπος, αποτέλεσμα, κατάσταση ενεργοποίησης
FormFieldCollectionΣυλλογή αντικειμένων FormField; ευρετήριο με βάση το όνομα σελιδοδείκτη, Remove()
FieldFormTextFORMTEXT κλάση πεδίου
FieldFormCheckBoxFORMCHECKBOX κλάση πεδίου
FieldFormDropDownFORMDROPDOWN κλάση πεδίου
TextFormFieldTypeΑπαρίθμηση για τη μορφή εισόδου πεδίου κειμένου (Regular, Number, Date, κ.λπ.)
DropDownItemCollectionΕπεξεργάσιμη λίστα των επιλογών ενός πεδίου πτυσσόμενου μενού

Δείτε επίσης

 Ελληνικά