Freigeben über


AxHost-Klasse

Erstellt einen Wrapper für ActiveX-Steuerelemente und macht sie als Windows Forms-Steuerelemente mit vollem Funktionsumfang verfügbar.

Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)

Syntax

'Declaration
<ComVisibleAttribute(True)> _
<ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)> _
Public MustInherit Class AxHost
    Inherits Control
    Implements ISupportInitialize, ICustomTypeDescriptor
'Usage
Dim instance As AxHost
[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
/** @attribute ComVisibleAttribute(true) */ 
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) */ 
public abstract class AxHost extends Control implements ISupportInitialize, ICustomTypeDescriptor
ComVisibleAttribute(true) 
ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) 
public abstract class AxHost extends Control implements ISupportInitialize, ICustomTypeDescriptor

Hinweise

Die AxHost-Klasse wird üblicherweise nicht direkt verwendet. Mithilfe von Windows Forms ActiveX Control Importer-Tool (Aximp.exe) können Sie Wrapper zum Erweitern von AxHost generieren.

Der ActiveX Control Importer generiert eine Klasse, die von der AxHost-Klasse abgeleitet ist, und kompiliert daraus eine Bibliotheksdatei (DLL), die als Verweis auf die Anwendung hinzugefügt werden kann. Sie können auch den /source-Schalter mit dem ActiveX Control Importer verwenden, sodass eine C#-Datei für die von AxHost abgeleitete Klasse generiert wird. Anschließend können Sie Änderungen am Code vornehmen und diesen neu in eine Bibliotheksdatei kompilieren.

Hinweis

Wenn der Name eines Members des ActiveX-Steuerelements mit einem in .NET Framework definierten Namen übereinstimmt, versieht der ActiveX Control Importer den Membernamen mit dem Präfix "Ctl", wenn die von AxHost abgeleitete Klasse erstellt wird. Wenn das ActiveX-Steuerelement z. B. über einen Member mit der Bezeichnung "Layout" verfügt, wird er in der von AxHost abgeleiteten Klasse in "CtlLayout" umbenannt, weil das Layout-Ereignis in .NET Framework definiert ist.

Die meisten allgemeinen Eigenschaften der AxHost-Klasse sind nur gültig und werden nur verwendet, wenn sie vom zugrunde liegende ActiveX-Steuerelement verfügbar gemacht werden. Einige Beispiele für allgemeine Eigenschaften sind BackColor, Cursor, Font und Text.

Hinweis

Wenn Sie Visual Studio .NET als Windows Forms-Entwurfsumgebung verwenden, können Sie ein ActiveX-Steuerelement für Ihre Anwendung verfügbar machen, indem Sie dieses der Toolbox hinzufügen. Dazu klicken Sie mit der rechten Maustaste auf die Toolbox, wählen Toolbox anpassen aus und wechseln anschließend zur OCX-Datei des ActiveX-Steuerelements. Weitere Informationen finden Sie in der Visual Studio .NET-Dokumentation unter "Hinzufügen von ActiveX-Steuerelementen zu Windows Forms".

Beispiel

Im folgenden Codebeispiel werden der Konstruktor sowie die SetAboutBoxDelegate-Methode und die AttachInterfaces-Methode einer von AxHost abgeleiteten Klasse überschrieben, die das Masked Edit-ActiveX-Steuerelement von Microsoft umschließt. Für diesen Code ist es erforderlich, dass Sie den generierten Quellcode erstellt haben, indem Sie die Datei AxImp.exe mit der Datei MSMask32.ocx und dem /source-Schalter ausgeführt haben, um die zu bearbeitende Wrapperklasse zu generieren. Dieser Code wird in C#-Syntax angezeigt, da dies die einzige von AxImp.exe ausgegebene Sprache ist.

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

Vererbungshierarchie

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

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

AxHost-Member
System.Windows.Forms-Namespace
Control
UserControl