AxHost クラス
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)

<ComVisibleAttribute(True)> _ <ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)> _ Public MustInherit Class AxHost Inherits Control Implements ISupportInitialize, ICustomTypeDescriptor
[ComVisibleAttribute(true)] [ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)] public abstract class AxHost : Control, ISupportInitialize, ICustomTypeDescriptor
[ComVisibleAttribute(true)] [ClassInterfaceAttribute(ClassInterfaceType::AutoDispatch)] public ref class AxHost abstract : public Control, ISupportInitialize, ICustomTypeDescriptor

通常、AxHost クラスは直接使用しません。Windows フォーム ActiveX コントロール インポータ (Aximp.exe) を使用して、AxHost を拡張するラッパーを生成できます。
ActiveX コントロール インポータは、AxHost の派生クラスを生成して、ライブラリ ファイル (DLL) にコンパイルします。これは、アプリケーションに参照として追加できます。または、ActiveX コントロール インポータに /source スイッチを付けて実行すると、AxHost の派生クラスの C# ファイルが生成されます。生成された C# ファイルは必要に応じて変更し、ライブラリ ファイルに再コンパイルできます。
![]() |
---|
ActiveX コントロールの中に、.NET Framework で定義されている名前と同じ名前のメンバがある場合、AxHost の派生クラスの作成時に、ActiveX コントロール インポータによって、これらのメンバにプレフィックス "Ctl" が付けられます。たとえば、ActiveX コントロールに "Layout" という名前のメンバがあるとします。.NET Framework には Layout という名前のイベントが既にあるため、AxHost の派生クラス内では "CtlLayout" に名前が変更されます。 |
AxHost クラスの共通プロパティの多くは、基になる ActiveX コントロールがそれらのプロパティを公開している場合だけに有効であり、使用できます。共通プロパティには、BackColor、Cursor、Font、Text などがあります。

Microsoft Masked Edit ActiveX コントロールをラップする AxHost の派生クラスのコンストラクタ、SetAboutBoxDelegate メソッド、および AttachInterfaces メソッドをオーバーライドするコード例を次に示します。このコードは、MSMask32.ocx ファイル上で /source スイッチを使用して AxImp.exe を実行し、編集対象となるラッパー クラスを生成することで、生成されるソース コードを作成済みであることを前提としています。AxImp.exe の出力言語は C# だけなので、ここでは C# 構文のコードだけを示します。
public AxMaskEdBox() : base("c932ba85-4374-101b-a56c-00aa003668dc") // The ActiveX control's class identifier. { // Make the AboutBox method the about box delegate. this.SetAboutBoxDelegate(new AboutBoxDelegate(AboutBox)); } public virtual void AboutBox() { // If the instance of the ActiveX control is null when the AboutBox method // is called, raise an InvalidActiveXStateException exception. if ((this.ocx == null)) { throw new System.Windows.Forms.AxHost.InvalidActiveXStateException( "AboutBox", System.Windows.Forms.AxHost.ActiveXInvokeKind.MethodInvoke); } // Show the about box if the ActiveX control has one. if (this.HasAboutBox) { this.ocx.AboutBox(); } } protected override void AttachInterfaces() { try { // Attach the IMSMask interface to the ActiveX control. this.ocx = ((MSMask.IMSMask)(this.GetOcx())); } catch (System.Exception ex) { System.Console.WriteLine(ex.Message); } }

System.MarshalByRefObject
System.ComponentModel.Component
System.Windows.Forms.Control
System.Windows.Forms.AxHost


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- AxHost クラスのページへのリンク