ประเภทคอนโทรล Legacy ActiveX (Forms 2.0)
รุ่นเก่า ActiveX (Forms 2.0) ประเภทการควบคุม
ทำงานกับอ็อบเจกต์ OLE และเนื้อหาแบบฝัง อธิบายวิธีการเข้าถึงคอนโทรล Microsoft Forms 2.0 ActiveX ที่ฝังอยู่ผ่าน OleFormat.OleControl และแปลงเป็นคลาสฐานแบบนามธรรม Forms2OleControl คลาสฐาน. Aspose.Words FOSS สำหรับ .NET ยังเปิดเผยคลาสย่อยแบบ strongly-typed จำนวนห้าชนิดสำหรับประเภทคอนโทรลเฉพาะที่ Word รองรับ – CheckBoxControl, OptionButtonControl, TextBoxControl, CommandButtonControl, และ MorphDataControl – แต่ละใน the Aspose.Words.Drawing.Ole เนมสเปซ, เพิ่มสมาชิกเฉพาะคอนโทรลหนึ่งตัวเหนือคุณสมบัติ Forms2OleControl มีให้แล้ว (Caption, Value, Enabled, Type, GroupName, ForeColor, BackColor, Width, Height, Name, ChildNodes).
CheckBoxControl และ OptionButtonControl
CheckBoxControl สืบทอด MorphDataControl และเพิ่ม Checked (เป็น bool) สำหรับสถานะเปิด/ปิดของคอนโทรล. OptionButtonControl ยังสืบทอด MorphDataControl และเพิ่ม Selected (เป็น bool) – ใช้สำหรับชุดของปุ่มตัวเลือกที่เป็นเอกพจน์ซึ่งแชร์ GroupName เดียวกัน.
TextBoxControl
TextBoxControl สืบทอด MorphDataControl และเพิ่ม Text (เป็น string), ข้อความที่แสดงและสามารถแก้ไขได้ของคอนโทรล.
CommandButtonControl
CommandButtonControl สืบทอดจาก Forms2OleControl โดยตรง (ไม่ใช่ MorphDataControl) และมีคอนสตรัคเตอร์ของตนเอง มันเป็นปุ่มที่รันมาโครเมื่อคลิกใน Word โดยป้ายชื่อปุ่มจะเปิดเผยผ่านคุณสมบัติ Caption ที่สืบทอดมา.
MorphDataControl: ฐานร่วมสำหรับคอนโทรลการป้อนข้อมูล
MorphDataControl เป็นฐานรวมสำหรับหกประเภทคอนโทรลที่เกี่ยวข้อง – checkbox, combo box, list box, option button, text box, และ toggle button. CheckBoxControl, OptionButtonControl, และ TextBoxControl แต่ละตัวสืบทอดจากมัน, รับมรดกสมาชิกและเพิ่มคุณสมบัติเฉพาะประเภทหนึ่งของตนเอง.
เคล็ดลับและแนวทางปฏิบัติที่ดีที่สุด
- อ่าน
Forms2OleControl.Type(ค่าประเภทForms2OleControlType) เพื่อระบุคอนโทรลก่อนที่จะทำการแคสท์เป็นหนึ่งในซับคลาสเฉพาะ – ไม่ใช่ทุกForms2OleControlจะเป็นหนึ่งในห้าซับคลาสที่มีการระบุประเภทอย่างชัดเจนที่อธิบายไว้ที่นี่. - ใช้
GroupNameเพื่อเชื่อมโยงหลายอินสแตนซ์ของOptionButtonControlให้เป็นชุดที่ไม่ซ้ำกันกัน, ตรงกับวิธีที่ Word จัดกลุ่มปุ่มตัวเลือก. - เข้าถึงคอนโทรลที่ซ้อนกันภายในเฟรมหรือคอนเทนเนอร์หลายหน้าได้ผ่าน
ChildNodesที่สืบทอดมา (เป็นForms2OleControlCollection), ไม่ว่าจะเป็นซับคลาสใดของคอนเทนเนอร์.
ปัญหาทั่วไป
| ปัญหา | สาเหตุ | แก้ไข |
|---|---|---|
การแคสต์ Forms2OleControl เป็น CheckBoxControl จะทำให้เกิด InvalidCastException | คอนโทรลเป็นประเภทคอนโทรล Forms 2.0 ที่แตกต่าง (เช่น TextBoxControl หรือ OptionButtonControl) | ตรวจสอบ Forms2OleControl.Type ก่อนแคสต์เป็นซับคลาสเฉพาะ |
OptionButtonControl.Selected ไม่ทำงานเป็นแบบแยกจากกันกับคอนโทรลพี่น้อง | คอนโทรลไม่ได้ใช้ GroupName เดียวกัน | กำหนดค่า GroupName เดียวกันให้กับทุก OptionButtonControl ในชุด |
CommandButtonControl.Caption ว่าง | คำบรรยายของปุ่มมาจาก Forms2OleControl.Caption ที่สืบทอดมา ไม่ใช่คุณสมบัติที่เฉพาะเจาะจงของ CommandButtonControl | อ่าน Caption ไม่ใช่สมาชิกที่มีเฉพาะ CommandButtonControl ซึ่งไม่มีอยู่ |
FAQ
ฉันจะทราบได้อย่างไรว่า Forms2OleControl จริงๆ แล้วเป็นคลาสคอนโทรลที่มีการพิมพ์อย่างเข้มข้นประเภทใด?
อ่านคุณสมบัติ Type ของมัน (Forms2OleControlType) หรือพยายามทำการแคสต์เป็นซับคลาสเฉพาะที่คุณคาดหวัง เช่น CheckBoxControl หรือ TextBoxControl.
ความแตกต่างระหว่าง MorphDataControl กับ Forms2OleControl คืออะไร?
Forms2OleControl คือฐานเชิงนามธรรมสำหรับคอนโทรล Forms 2.0 ทุกตัว. MorphDataControl เป็นฐานเชิงนามธรรมที่เฉพาะเจาะจงมากขึ้น ซึ่งขยายจาก Forms2OleControl เอง, ใช้ร่วมกันโดยคอนโทรลประเภท checkbox, combo box, list box, option button, text box, และ toggle button.
ฉันจะอ่านสถานะการเลือกของคอนโทรล checkbox ได้อย่างไร?
ทำการแคสต์ Forms2OleControl ไปเป็น CheckBoxControl แล้วอ่านคุณสมบัติ Checked ของมัน.
โดย CommandButtonControl ขยายจาก MorphDataControl เหมือนกับอันอื่น ๆ หรือไม่?
ไม่ – CommandButtonControl ขยาย Forms2OleControl โดยตรง เนื่องจากปุ่มคำสั่งไม่ใช่คอนโทรลการป้อนข้อมูล.
API Reference สรุป
| คลาส | คำอธิบาย |
|---|---|
MorphDataControl | ฐานเชิงนามธรรมสำหรับคอนโทรล checkbox, combo box, list box, option button, text box, และ toggle button |
CheckBoxControl | คอนโทรลเช็คบ็อกซ์; ขยายจาก MorphDataControl; เพิ่ม Checked |
OptionButtonControl | คอนโทรลปุ่มเลือก; ขยายจาก MorphDataControl; เพิ่ม Selected |
TextBoxControl | คอนโทรลกล่องข้อความ; ขยายจาก MorphDataControl; เพิ่ม Text |
CommandButtonControl | คอนโทรลปุ่มคำสั่ง; ขยายโดยตรงจาก Forms2OleControl |