Este tema aún no ha recibido ninguna valoración - Valorar este tema

AxHost (Clase)

Actualización: noviembre 2007

Ajusta los controles ActiveX y los expone como controles completos de formularios Windows Forms.

Espacio de nombres:  System.Windows.Forms
Ensamblado:  System.Windows.Forms (en System.Windows.Forms.dll)
[ComVisibleAttribute(true)]
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)]
[PermissionSetAttribute(SecurityAction.InheritanceDemand, Name = "FullTrust")]
[PermissionSetAttribute(SecurityAction.LinkDemand, Name = "FullTrust")]
public abstract class AxHost : Control, 
	ISupportInitialize, ICustomTypeDescriptor
/** @attribute ComVisibleAttribute(true) */
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) */
/** @attribute PermissionSetAttribute(SecurityAction.InheritanceDemand, Name = "FullTrust") */
/** @attribute PermissionSetAttribute(SecurityAction.LinkDemand, Name = "FullTrust") */
public abstract class AxHost extends Control implements ISupportInitialize, 
	ICustomTypeDescriptor
public abstract class AxHost extends Control implements ISupportInitialize, ICustomTypeDescriptor

Normalmente, no se utiliza la clase AxHost directamente. Puede utilizar Importador de controles ActiveX de formularios Windows Forms (Aximp.exe) para generar los contenedores que amplían AxHost.

El Importador de controles ActiveX genera una clase derivada de la clase AxHost y la compila en un archivo de biblioteca (DLL) que puede agregarse como una referencia a la aplicación. Con el Importador de controles ActiveX, puede utilizarse también el modificador /source, por lo que se genera un archivo C# para la clase derivada AxHost. Después, pueden realizarse cambios en el código y puede volver a compilarse en un archivo de biblioteca.

s17hc3sc.alert_note(es-es,VS.90).gif Nota:

Si el nombre de un miembro de un control ActiveX coincide con un nombre definido en .NET Framework, el Importador de controles ActiveX agregará el prefijo "Ctl" al nombre del miembro cuando cree la clase derivada AxHost. Por ejemplo, si el control ActiveX tiene un miembro denominado "Layout", el nombre se cambia a "CtlLayout" en la clase derivada AxHost porque el evento Layout está definido dentro de .NET Framework.

La mayoría de las propiedades comunes de la clase AxHost sólo son válidas y pueden utilizarse si el control ActiveX subyacente expone dichas propiedades. Algunos ejemplos de las propiedades comunes son BackColor, Cursor, Font y Text.

s17hc3sc.alert_note(es-es,VS.90).gif Nota:

Si utiliza Visual Studio .NET como entorno de diseño de formularios Windows Forms, puede poner un control ActiveX a disposición de la aplicación mediante la adicción de dicho control al cuadro de herramientas. Para ello, haga clic con el botón secundario del mouse (ratón) en el Cuadro de herramientas, seleccione Personalizar cuadro de herramientas y, a continuación, busque el archivo .ocx del control ActiveX. Para obtener más información, vea "Agregar controles ActiveX a formularios Windows Forms” de la documentación de Visual Studio .NET.

En el siguiente ejemplo de código se reemplaza el constructor, así como los métodos SetAboutBoxDelegate y AttachInterfaces de una clase derivada AxHost que contiene el control ActiveX Masked Edit de Microsoft. En este código se requiere que se haya creado el código fuente generado ejecutando AxImp.exe en el archivo MSMask32.ocx con el modificador /source para generar la clase contenedora que se va a editar. Este código se muestra únicamente en sintaxis de C# ya que es el único lenguaje de Axlmp.exe.

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


Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0, 1.1, 1.0
¿Le ha resultado útil?
(Caracteres restantes: 1500)
Contenido de la comunidad Agregar