Export (0) Print
Expand All

AxHost Class

Wraps ActiveX controls and exposes them as fully featured Windows Forms controls.

For a list of all members of this type, see AxHost Members.

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

[Visual Basic]
MustInherit Public Class AxHost
   Inherits Control
   Implements ISupportInitialize, ICustomTypeDescriptor
[C#]
public abstract class AxHost : Control, ISupportInitialize,
   ICustomTypeDescriptor
[C++]
public __gc __abstract class AxHost : public Control,
   ISupportInitialize, ICustomTypeDescriptor
[JScript]
public abstract class AxHost extends Control implements
   ISupportInitialize, ICustomTypeDescriptor

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Remarks

You typically do not use the AxHost class directly. You can use the Windows Forms ActiveX Control Importer (AxImp.exe) to generate the wrappers that extend AxHost.

The ActiveX Control Importer generates a class that is derived from the AxHost class, and compiles it into a library file (DLL) that can be added as a reference to your application. Alternatively, you can use the /source switch with the ActiveX Control Importer and a C# file is generated for your AxHost derived class. You can then make changes to the code and recompile it into a library file.

Note   If the name of a member of the ActiveX control matches a name defined in the .NET Framework, then the ActiveX Control Importer will prefix the member name with "Ctl" when it creates the AxHost derived class. For example, if your ActiveX control has a member named "Layout", it is renamed "CtlLayout" in the AxHost derived class because the Layout event is defined within the .NET Framework.

Most of the common properties of the AxHost class are only valid and used if the underlying ActiveX control exposes those properties. A few examples of the common properties are BackColor, Cursor, Font, and Text.

Note   If you are using Visual Studio .NET as your Windows Forms design environment, you can make an ActiveX control available to your application by adding the ActiveX control to your Toolbox. To accomplish this, right-click the Toolbox, select Customize Toolbox, then browse to the ActiveX control's .ocx file. For more information, see "Adding ActiveX Controls to Windows Forms" in the Visual Studio .NET documentation.

Example

[C#] The following example overrides the constructor, and the SetAboutBoxDelegate and AttachInterfaces methods of an AxHost derived class that wraps the Microsoft Masked Edit ActiveX Control. This code assumes you have created the generated source code by running the AxImp.exe on the MSMask32.ocx file with the /source switch to generate the wrapper class to be edited. This code is only shown in C# syntax as that is the the only language output by the AxImp.exe.

[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);
   }
}

[Visual Basic, C++, JScript] No example is available for Visual Basic, C++, or JScript. To view a C# example, click the Language Filter button Language Filter in the upper-left corner of the page.

Requirements

Namespace: System.Windows.Forms

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

Assembly: System.Windows.Forms (in System.Windows.Forms.dll)

See Also

AxHost Members | System.Windows.Forms Namespace | Control | UserControl

Show:
© 2014 Microsoft