レガシー ActiveX (Forms 2.0) コントロール タイプ
レガシー ActiveX (Forms 2.0) コントロールタイプ
OLE オブジェクトと埋め込みコンテンツの操作 埋め込み Microsoft Forms 2.0 ActiveX コントロールにアクセスする方法をカバーします OleFormat.OleControl そして抽象的な Forms2OleControl 基底クラスへ。 Aspose.Words の .NET 用 FOSS また、Word がサポートする特定のコントロール種別に対して、5 つの強く型付けされたサブクラスを公開します – CheckBoxControl, OptionButtonControl, TextBoxControl, CommandButtonControl、および MorphDataControl – 各々は Aspose.Words.Drawing.Ole 名前空間、プロパティに加えて制御固有のメンバーを1つ追加する 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 は、チェックボックス、コンボボックス、リストボックス、オプションボタン、テキストボックス、トグルボタンの 6 つの関連コントロール種別の集約ベースです。CheckBoxControl、OptionButtonControl、TextBoxControl はそれぞれこれを継承し、メンバーを引き継ぎつつ独自の型固有プロパティを 1 つ追加します。
ヒントとベストプラクティス
- 特定のサブクラスのいずれかにキャストする前に、
Forms2OleControl.Type(Forms2OleControlTypeの値)を読み取ってコントロールを識別してください――ここで取り上げている 5 つの強く型付けされたサブクラスのすべてがForms2OleControlであるわけではありません。 GroupNameを使用して、複数のOptionButtonControlインスタンスを相互排他的なセットに関連付け、Word がオプションボタンをグループ化する方法と一致させます。- フレームやマルチページコンテナ内のネストされたコントロールには、コンテナがどのサブクラスであっても、継承された
ChildNodes(Forms2OleControlCollection)を介してアクセスできます。
一般的な問題
| 問題 | 原因 | 修正 |
|---|---|---|
Forms2OleControl を CheckBoxControl にキャストすると、InvalidCastException がスローされます | コントロールは別の Forms 2.0 コントロール種別です(例: TextBoxControl または OptionButtonControl)。 | 特定のサブクラスにキャストする前に Forms2OleControl.Type を確認してください |
OptionButtonControl.Selected は兄弟コントロールと相互排他的に動作しません | コントロールは同じ GroupName を共有していません | セット内のすべての OptionButtonControl に同じ GroupName 値を設定してください |
CommandButtonControl.Caption が空です | ボタンのキャプションは継承された Forms2OleControl.Caption から取得され、CommandButtonControl 固有のプロパティからではありません | 存在しない CommandButtonControl のみのメンバーではなく、Caption を読み取ります |
FAQ
Forms2OleControl が実際にどの強く型付けされたコントロールクラスであるかをどうやって知りますか?
その Type プロパティ(Forms2OleControlType)を読み取るか、期待する特定のサブクラス(例: CheckBoxControl または TextBoxControl)へのキャストを試みてください。
MorphDataControl と Forms2OleControl の違いは何ですか?
Forms2OleControl はすべての Forms 2.0 コントロールの抽象基底です。MorphDataControl はより具体的な抽象基底で、Forms2OleControl を継承しており、チェックボックス、コンボボックス、リストボックス、オプションボタン、テキストボックス、トグルボタンのコントロール種別で共有されています。
チェックボックスコントロールのチェック状態をどのように読み取りますか?
Forms2OleControl を CheckBoxControl にキャストし、その Checked プロパティを読み取ります。
CommandButtonControl は他と同様に MorphDataControl を拡張していますか?
いいえ – CommandButtonControl は Forms2OleControl を直接拡張しません。コマンド ボタンはデータ入力コントロールではないためです。
API Reference の概要
| クラス | 説明 |
|---|---|
MorphDataControl | チェックボックス、コンボボックス、リストボックス、オプションボタン、テキストボックス、トグルボタンコントロールの抽象基底クラス |
CheckBoxControl | チェックボックス コントロール; MorphDataControl を拡張; Checked を追加 |
OptionButtonControl | オプション ボタン コントロール; MorphDataControl を拡張; Selected を追加 |
TextBoxControl | テキスト ボックス コントロール; MorphDataControl を拡張; Text を追加 |
CommandButtonControl | コマンド ボタン コントロール; Forms2OleControl を直接拡張 |