שדות טופס ישנים

שדות טופס מדורגים

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רשימה ניתנת לעריכה של אפשרויות של שדה נפתח

ראה גם

 עברית