MenuDesigner Clase

Definición

Proporciona compatibilidad en tiempo de diseño en un diseñador visual para el control Menu.

public class MenuDesigner : System.Web.UI.Design.WebControls.HierarchicalDataBoundControlDesigner, System.Web.UI.Design.IDataBindingSchemaProvider
Herencia
Implementaciones

Ejemplos

En el ejemplo de código siguiente se muestra cómo extender la MenuDesigner clase para cambiar la apariencia de los controles derivados del Menu control en tiempo de diseño.

En el ejemplo se deriva la MyMenu clase de Menu. La MyMenu clase es una copia de Menu. En el ejemplo también se deriva la MyMenuDesigner clase de la MenuDesigner clase y, a continuación, se aplica un DesignerAttribute atributo para en MyMenuDesigner la MyMenu clase .

The MyMenuDesigner invalida los siguientes MenuDesigner miembros:

  • Método GetDesignTimeHtml para dibujar un borde naranja y punteado alrededor del control para que su extensión sea más visible.

  • Método GetErrorDesignTimeHtml para generar el marcado de un marcador de posición que incluye el mensaje de error, que se representa en texto rojo y en negrita.

  • que GetEmptyDesignTimeHtml se va a generar el marcado de un marcador de posición que contiene un mensaje que indica que no se definen elementos de menú.

  • Método Initialize para producir una ArgumentException excepción, si el control asociado no es un MyMenu objeto .

using System;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.Design.WebControls;
using System.ComponentModel;
using System.Security.Permissions;
using System.Drawing;

namespace Examples.CS.WebControls.Design
{
    // The MyMenu is a copy of the Menu.
    [AspNetHostingPermission(SecurityAction.Demand, 
        Level = AspNetHostingPermissionLevel.Minimal)]
    [AspNetHostingPermission(SecurityAction.InheritanceDemand, 
        Level = AspNetHostingPermissionLevel.Minimal)]
    [Designer(typeof(Examples.CS.WebControls.Design.MyMenuDesigner))]
    public class MyMenu : Menu
    {
    } // MyMenu

    // Override members of the MenuDesigner.
    public class MyMenuDesigner : MenuDesigner
    {
        // Generate the design-time markup for the control when an error occurs.
        protected override string GetErrorDesignTimeHtml(Exception ex) 
        {
            // Write the error message text in red, bold.
            string errorRendering =
                "<span style=\"font-weight:bold; color:Red; \">" +
                ex.Message + "</span>";

            return CreatePlaceHolderDesignTimeHtml(errorRendering);
        } // GetErrorDesignTimeHtml

        // Generate the design-time markup for the control 
        // when the template is empty.
        protected override string GetEmptyDesignTimeHtml()
        {
            string noElements = "Contains no menu items.";

            return CreatePlaceHolderDesignTimeHtml(noElements);
        } // GetEmptyDesignTimeHtml

        // Generate the design-time markup.
        public override string GetDesignTimeHtml()
        {
            // Make the control more visible in the designer.  If the border 
            // style is None or NotSet, change the border to an orange dotted line. 
            MyMenu myMenuCtl = (MyMenu)ViewControl;
            string markup = null;

            // Check if the border style should be changed.
            if (myMenuCtl.BorderStyle == BorderStyle.NotSet ||
                myMenuCtl.BorderStyle == BorderStyle.None)
            {
                BorderStyle oldBorderStyle = myMenuCtl.BorderStyle;
                Color oldBorderColor = myMenuCtl.BorderColor;

                // Set the design-time properties and catch any exceptions.
                try
                {
                    myMenuCtl.BorderStyle = BorderStyle.Dotted;
                    myMenuCtl.BorderColor = Color.FromArgb(0xFF7F00);

                    // Call the base method to generate the markup.
                    markup = base.GetDesignTimeHtml();
                }
                catch (Exception ex)
                {
                    markup = GetErrorDesignTimeHtml(ex);
                }
                finally
                {
                    // Restore the properties to their original settings.
                    myMenuCtl.BorderStyle = oldBorderStyle;
                    myMenuCtl.BorderColor = oldBorderColor;
                }
            }
            else
            {
                // Call the base method to generate the markup.
                markup = base.GetDesignTimeHtml();
            }

            return markup;
        } // GetDesignTimeHtml

        public override void Initialize(IComponent component)
        {
            // Ensure that only a MyMenu can be created in this designer.
            if (!(component is MyMenu))
                throw new ArgumentException(
                    "The component is not a MyMenu control.");
            
            base.Initialize(component);
        } // Initialize
    } // MyMenuDesigner
} // Examples.CS.WebControls.Design

Comentarios

La Menu clase proporciona un control de servidor web de menú jerárquico.

En un diseñador visual, al cambiar de la vista Origen a Diseño, el código fuente de marcado que describe el control asociado Menu se analiza y se crea una versión en tiempo de diseño del control en la superficie de diseño. Al volver a la vista Origen, el control en tiempo de diseño se conserva en el marcado y se agrega al marcado existente para la página web. La MenuDesigner clase proporciona compatibilidad en tiempo de diseño para Menu los controles de un diseñador visual.

La ActionLists propiedad devuelve un DesignerActionListCollection objeto , que normalmente contiene un objeto derivado de la DesignerActionList clase para cada nivel del árbol de herencia del diseñador. La AutoFormats propiedad devuelve una colección de esquemas de formato para mostrarse en el cuadro de diálogo Formato automático .

La TemplateGroups propiedad devuelve una colección de grupos de plantillas para las plantillas del control asociado Menu . La UsePreviewControl propiedad siempre devuelve true, lo que indica que el diseñador crea una copia temporal del asociado Menu para generar el marcado en tiempo de diseño.

Los MenuDesigner métodos de clase proporcionan la siguiente funcionalidad:

  • El Initialize método prepara el diseñador para ver, editar y diseñar el control asociado Menu . El GetDesignTimeHtml método devuelve el marcado que se usa para representar el asociado Menu en tiempo de diseño.

  • El GetEmptyDesignTimeHtml método obtiene el marcado que representa un marcador de posición para el control asociado en tiempo de diseño cuando no hay ningún marcado disponible de otro modo. El GetErrorDesignTimeHtml método proporciona el marcado que representa el control asociado en tiempo de diseño cuando se ha producido un error.

  • El DataBind método enlaza el control asociado Menu al origen de datos en tiempo de diseño. El GetSampleDataSource método construye un origen de datos de ejemplo que se puede usar en tiempo de diseño para el control asociado.

Constructores

MenuDesigner()

Inicializa una nueva instancia de la clase MenuDesigner.

Propiedades

ActionLists

Obtiene la colección de listas de acciones para este diseñador.

AllowResize

Obtiene un valor que indica si se puede cambiar el tamaño del control en el entorno en tiempo de diseño.

(Heredado de ControlDesigner)
AssociatedComponents

Obtiene la colección de componentes asociados al componente administrado por el diseñador.

(Heredado de ComponentDesigner)
AutoFormats

Obtiene la colección de esquemas de formato predefinidos que se va a mostrar en el cuadro de diálogo Formato automático.

Behavior
Obsoletos.

Obtiene o establece el comportamiento DHTML asociado al diseñador.

(Heredado de HtmlControlDesigner)
CanRefreshSchema

Obtiene un valor que indica si el proveedor puede actualizar el esquema.

Component

Obtiene el componente que el diseñador está creando.

(Heredado de ComponentDesigner)
DataBindings

Obtiene la colección de enlaces de datos del control actual.

(Heredado de HtmlControlDesigner)
DataBindingsEnabled

Obtiene un valor que indica si la región contenedora del control asociado permite el enlace a datos.

(Heredado de ControlDesigner)
DataSource

Obtiene o establece el valor de la propiedad DataSource para el control asociado.

(Heredado de BaseDataBoundControlDesigner)
DataSourceDesigner

Proporciona el acceso al diseñador del origen de datos, cuando se selecciona uno para el enlace de datos.

(Heredado de HierarchicalDataBoundControlDesigner)
DataSourceID

Obtiene o establece el valor de la propiedad DataSourceID del objeto BaseDataBoundControl subyacente.

(Heredado de BaseDataBoundControlDesigner)
DesignerState

Obtiene un objeto que se utiliza para guardar los datos del control asociado en tiempo de diseño.

(Heredado de ControlDesigner)
DesignerView

Obtiene la vista predeterminada del origen de datos enlazado al control asociado.

(Heredado de HierarchicalDataBoundControlDesigner)
DesignTimeElement
Obsoletos.

Obtiene el objeto en tiempo de diseño que representa el control asociado al objeto HtmlControlDesigner en la superficie de diseño.

(Heredado de HtmlControlDesigner)
DesignTimeElementView
Obsoletos.

Obtiene el objeto de control de vista para el diseñador de controles.

(Heredado de ControlDesigner)
DesignTimeHtmlRequiresLoadComplete
Obsoletos.

Obtiene un valor que indica si el host de diseño debe terminar de cargarse antes de que se pueda llamar al método GetDesignTimeHtml.

(Heredado de ControlDesigner)
Expressions

Obtiene los enlaces de expresión en tiempo de diseño para el control actual.

(Heredado de HtmlControlDesigner)
HidePropertiesInTemplateMode

Obtiene un valor que indica si las propiedades del control asociado están ocultas cuando el control está en modo de plantilla.

(Heredado de ControlDesigner)
ID

Obtiene o establece la cadena del identificador del control.

(Heredado de ControlDesigner)
InheritanceAttribute

Obtiene un atributo que indica el tipo de herencia del componente asociado.

(Heredado de ComponentDesigner)
Inherited

Obtiene un valor que indica si este componente es heredado.

(Heredado de ComponentDesigner)
InTemplateMode

Obtiene un valor que indica si el control está en el modo de vista o de edición de plantilla en el host de diseño. La propiedad InTemplateMode es de sólo lectura.

(Heredado de ControlDesigner)
IsDirty
Obsoletos.

Obtiene o establece un valor que indica si el control de servidor Web se ha marcado como modificado.

(Heredado de ControlDesigner)
ParentComponent

Obtiene el componente primario de este diseñador.

(Heredado de ComponentDesigner)
ReadOnly
Obsoletos.

Obtiene o establece un valor que indica si las propiedades del control son de sólo lectura en tiempo de diseño.

(Heredado de ControlDesigner)
RootDesigner

Obtiene el diseñador de controles para la página de formularios Web Forms que contiene el control asociado.

(Heredado de ControlDesigner)
Schema

Obtiene un esquema que describe la vista de origen de datos para el control Menu asociado.

SetTextualDefaultProperty

Proporciona compatibilidad en tiempo de diseño en un diseñador visual para el control Menu.

(Heredado de ComponentDesigner)
ShadowProperties

Obtiene una colección de valores de propiedad que reemplazan la configuración del usuario.

(Heredado de ComponentDesigner)
ShouldCodeSerialize
Obsoletos.

Obtiene o establece un valor que indica si se debe crear una declaración de campo para el control en el archivo de código subyacente para el documento de diseño actual durante la serialización.

(Heredado de HtmlControlDesigner)
Tag

Obtiene un objeto que representa el elemento de formato HTML del control asociado.

(Heredado de ControlDesigner)
TemplateGroups

Obtiene una colección de grupos de plantillas para las plantillas del control asociado.

UseDataSourcePickerActionList

Obtiene un valor que indica si el control debe representar sus listas de acciones predeterminadas, que contienen una lista desplegable de identificadores de orígenes de datos y las tareas relacionadas.

(Heredado de HierarchicalDataBoundControlDesigner)
UsePreviewControl

Obtiene un valor que indica si el diseñador debe utilizar una copia del control asociado o el control real para generar el marcado en tiempo de diseño.

Verbs

Obtiene los verbos en tiempo de diseño que admite el componente asociado al diseñador.

(Heredado de ComponentDesigner)
ViewControl

Obtiene o establece un control de servidor Web que se puede utilizar para ofrecer una vista previa del formato HTML en tiempo de diseño.

(Heredado de ControlDesigner)
ViewControlCreated

Obtiene o establece un valor que indica si se ha creado un control View para la presentación en la superficie de diseño.

(Heredado de ControlDesigner)
Visible

Obtiene un valor que indica si el control está visible en tiempo de diseño.

(Heredado de ControlDesigner)

Métodos

ConnectToDataSource()

Realiza las acciones necesarias para conectar con el origen de datos actual.

(Heredado de HierarchicalDataBoundControlDesigner)
CreateDataSource()

Crea un nuevo origen de datos para el control asociado.

(Heredado de HierarchicalDataBoundControlDesigner)
CreateErrorDesignTimeHtml(String)

Crea el formato HTML para mostrar un mensaje de error especificado en tiempo de diseño.

(Heredado de ControlDesigner)
CreateErrorDesignTimeHtml(String, Exception)

Crea el formato HTML para mostrar un mensaje de error de excepción especificado en tiempo de diseño.

(Heredado de ControlDesigner)
CreatePlaceHolderDesignTimeHtml()

Proporciona una representación sencilla del marcador de posición rectangular que muestra el tipo y el Id. del control.

(Heredado de ControlDesigner)
CreatePlaceHolderDesignTimeHtml(String)

Proporciona una representación sencilla del marcador de posición rectangular que muestra el tipo y el Id. del control, así como instrucciones o información adicionales que se hayan especificado.

(Heredado de ControlDesigner)
CreateViewControl()

Devuelve una copia del control asociado para verlo o representarlo en la superficie de diseño.

(Heredado de ControlDesigner)
DataBind(BaseDataBoundControl)

Enlaza el control asociado al origen de datos en tiempo de diseño.

DisconnectFromDataSource()

Realiza las acciones necesarias para desconectar del origen de datos actual.

(Heredado de HierarchicalDataBoundControlDesigner)
Dispose()

Libera todos los recursos que usa ComponentDesigner.

(Heredado de ComponentDesigner)
Dispose(Boolean)

Libera los recursos no administrados utilizados por el objeto BaseDataBoundControlDesigner y, de forma opcional, libera los recursos administrados.

(Heredado de BaseDataBoundControlDesigner)
DoDefaultAction()

Crea una firma de método en el archivo de código fuente para el evento predeterminado del componente y hace navegar el cursor del usuario en esa ubicación.

(Heredado de ComponentDesigner)
Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetBounds()

Recupera las coordenadas del rectángulo que representa los límites del control mostrado en la superficie de diseño.

(Heredado de ControlDesigner)
GetDesignTimeDataSource()

Obtiene un origen de datos que se puede utilizar en tiempo de diseño para el control asociado.

(Heredado de HierarchicalDataBoundControlDesigner)
GetDesignTimeHtml()

Obtiene el marcado que se usa para representar el control asociado en tiempo de diseño.

GetDesignTimeHtml(DesignerRegionCollection)

Recupera el formato HTML para mostrar el control y rellena la colección con las regiones actuales del diseñador de controles.

(Heredado de ControlDesigner)
GetEditableDesignerRegionContent(EditableDesignerRegion)

Devuelve el contenido de una región modificable de la vista en tiempo de diseño del control asociado.

(Heredado de ControlDesigner)
GetEmptyDesignTimeHtml()

Obtiene el marcado que representa un marcador de posición en tiempo de diseño para el control asociado cuando no se dispone de ningún tipo de marcado.

GetErrorDesignTimeHtml(Exception)

Proporciona el marcado que representa el control asociado en tiempo de diseño cuando se ha producido un error.

GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetPersistenceContent()

Recupera el formato HTML interno con persistencia del control en tiempo de diseño.

(Heredado de ControlDesigner)
GetPersistInnerHtml()
Obsoletos.

Recupera el formato HTML interno con persistencia del control.

(Heredado de ControlDesigner)
GetSampleDataSource()

Crea un origen de datos de ejemplo para utilizarlo en tiempo de diseño para el control asociado.

GetService(Type)

Intenta recuperar el tipo de servicio especificado del sitio en modo de diseño del componente del diseñador.

(Heredado de ComponentDesigner)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
GetViewRendering()

Recupera un objeto que contiene el formato en tiempo de diseño para el contenido y las regiones del control asociado.

(Heredado de ControlDesigner)
Initialize(IComponent)

Prepara el diseñador para poder ver, modificar y diseñar el control asociado.

InitializeExistingComponent(IDictionary)

Reinicializa un componente existente.

(Heredado de ComponentDesigner)
InitializeNewComponent(IDictionary)

Inicializa un componente recién creado.

(Heredado de ComponentDesigner)
InitializeNonDefault()
Obsoletos.
Obsoletos.

Inicializa la configuración de un componente importado que ya se ha inicializado con una configuración que no es la predeterminada.

(Heredado de ComponentDesigner)
Invalidate()

Invalida todo el área del control que se muestra en la superficie de diseño y señala al diseñador de controles que vuelva a dibujar el control.

(Heredado de ControlDesigner)
Invalidate(Rectangle)

Invalida el área especificada del control que se muestra en la superficie de diseño y señala al diseñador de controles que vuelva a dibujar el control.

(Heredado de ControlDesigner)
InvokeGetInheritanceAttribute(ComponentDesigner)

Obtiene el objeto InheritanceAttribute de la enumeración ComponentDesigner especificada.

(Heredado de ComponentDesigner)
IsPropertyBound(String)
Obsoletos.

Recupera un valor que indica si la propiedad especificada en el control asociado está enlazada a datos o no.

(Heredado de ControlDesigner)
Localize(IDesignTimeResourceWriter)

Utiliza el sistema de escritura de recursos proporcionado para conservar las propiedades adaptables del control asociado en un recurso en el host de diseño.

(Heredado de ControlDesigner)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
OnAutoFormatApplied(DesignerAutoFormat)

Se le llama cuando se ha aplicado un esquema de formato automático predefinido al control asociado.

(Heredado de ControlDesigner)
OnBehaviorAttached()

Se llama cuando el diseñador de controles está asociado a un objeto Behavior.

(Heredado de ControlDesigner)
OnBehaviorDetaching()
Obsoletos.

Se le llama cuando se anula la asociación de un comportamiento al elemento.

(Heredado de HtmlControlDesigner)
OnBindingsCollectionChanged(String)
Obsoletos.

Se le llama cuando cambia la colección de enlace a datos.

(Heredado de ControlDesigner)
OnClick(DesignerRegionMouseEventArgs)

Lo llama el host de diseño cuando el usuario hace clic en el control asociado en tiempo de diseño.

(Heredado de ControlDesigner)
OnComponentChanged(Object, ComponentChangedEventArgs)

Se le llama cuando cambia el control asociado.

(Heredado de ControlDesigner)
OnComponentChanging(Object, ComponentChangingEventArgs)

Representa el método que controlará el evento ComponentChanging del control asociado.

(Heredado de ControlDesigner)
OnControlResize()
Obsoletos.

Se le llama cuando el control de servidor Web asociado ha cambiado de tamaño en tiempo de diseño en el host de diseño.

(Heredado de ControlDesigner)
OnDataSourceChanged(Boolean)

Se le llama cuando cambia el origen de datos del objeto BaseDataBoundControl asociado.

(Heredado de BaseDataBoundControlDesigner)
OnPaint(PaintEventArgs)

Se le llama cuando el diseñador de controles dibuja el control asociado en la superficie de diseño, si el valor CustomPaint es true.

(Heredado de ControlDesigner)
OnSchemaRefreshed()

Se le llama cuando el origen de datos del objeto BaseDataBoundControl asociado carga un nuevo esquema.

(Heredado de BaseDataBoundControlDesigner)
OnSetComponentDefaults()
Obsoletos.
Obsoletos.

Establece las propiedades predeterminadas del componente.

(Heredado de ComponentDesigner)
OnSetParent()

Proporciona una manera de realizar el procesamiento adicional cuando el control asociado se asocia a un control primario.

(Heredado de HtmlControlDesigner)
PostFilterAttributes(IDictionary)

Permite a un diseñador cambiar o quitar elementos en el conjunto de atributos que expone mediante un TypeDescriptor.

(Heredado de ComponentDesigner)
PostFilterEvents(IDictionary)

Permite a un diseñador cambiar o quitar elementos del conjunto de eventos que expone mediante un objeto TypeDescriptor.

(Heredado de ComponentDesigner)
PostFilterProperties(IDictionary)

Permite a un diseñador cambiar o quitar elementos del conjunto de propiedades que expone mediante un objeto TypeDescriptor.

(Heredado de ComponentDesigner)
PreFilterAttributes(IDictionary)

Permite a un diseñador agregar elementos al conjunto de atributos que expone mediante un objeto TypeDescriptor.

(Heredado de ComponentDesigner)
PreFilterEvents(IDictionary)

Establece la lista de eventos que se exponen en tiempo de diseño para el objeto TypeDescriptor para el componente.

(Heredado de HtmlControlDesigner)
PreFilterProperties(IDictionary)

La usa el diseñador para quitar o agregar propiedades en la presentación de la cuadrícula Propiedades, o para reemplazar propiedades del control asociado.

(Heredado de HierarchicalDataBoundControlDesigner)
RaiseComponentChanged(MemberDescriptor, Object, Object)

Notifica a IComponentChangeService que este componente se ha cambiado.

(Heredado de ComponentDesigner)
RaiseComponentChanging(MemberDescriptor)

Notifica a IComponentChangeService que este componente se va a cambiar.

(Heredado de ComponentDesigner)
RaiseResizeEvent()
Obsoletos.

Genera el evento OnControlResize().

(Heredado de ControlDesigner)
RefreshSchema(Boolean)

Actualiza el esquema de la vista de origen de datos para el control Menu asociado.

RegisterClone(Object, Object)

Registra los datos internos en un control clonado.

(Heredado de ControlDesigner)
SetEditableDesignerRegionContent(EditableDesignerRegion, String)

Especifica el contenido de una región modificable del control en tiempo de diseño.

(Heredado de ControlDesigner)
SetRegionContent(EditableDesignerRegion, String)

Especifica el contenido de una región modificable en la vista en tiempo de diseño del control.

(Heredado de ControlDesigner)
SetViewFlags(ViewFlags, Boolean)

Asigna la enumeración ViewFlags bit a bit especificada al valor de marcador especificado.

(Heredado de ControlDesigner)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
UpdateDesignTimeHtml()

Actualiza el formato HTML en tiempo de diseño para el control de servidor Web asociado llamando al método GetDesignTimeHtml.

(Heredado de ControlDesigner)

Implementaciones de interfaz explícitas

IDataBindingSchemaProvider.CanRefreshSchema

Obtiene un valor que indica si el proveedor puede actualizar el esquema. Para una descripción de este miembro, consulte la propiedad CanRefreshSchema.

IDataBindingSchemaProvider.RefreshSchema(Boolean)

Para obtener una descripción de este miembro, vea el método RefreshSchema(Boolean).

IDataBindingSchemaProvider.Schema

Obtiene el objeto de esquema actual para el diseñador. Para una descripción de este miembro, consulte la propiedad Schema.

IDesignerFilter.PostFilterAttributes(IDictionary)

Para obtener una descripción de este miembro, vea el método PostFilterAttributes(IDictionary).

(Heredado de ComponentDesigner)
IDesignerFilter.PostFilterEvents(IDictionary)

Para obtener una descripción de este miembro, vea el método PostFilterEvents(IDictionary).

(Heredado de ComponentDesigner)
IDesignerFilter.PostFilterProperties(IDictionary)

Para obtener una descripción de este miembro, vea el método PostFilterProperties(IDictionary).

(Heredado de ComponentDesigner)
IDesignerFilter.PreFilterAttributes(IDictionary)

Para obtener una descripción de este miembro, vea el método PreFilterAttributes(IDictionary).

(Heredado de ComponentDesigner)
IDesignerFilter.PreFilterEvents(IDictionary)

Para obtener una descripción de este miembro, vea el método PreFilterEvents(IDictionary).

(Heredado de ComponentDesigner)
IDesignerFilter.PreFilterProperties(IDictionary)

Para obtener una descripción de este miembro, vea el método PreFilterProperties(IDictionary).

(Heredado de ComponentDesigner)
ITreeDesigner.Children

Para una descripción de este miembro, consulte la propiedad Children.

(Heredado de ComponentDesigner)
ITreeDesigner.Parent

Para una descripción de este miembro, consulte la propiedad Parent.

(Heredado de ComponentDesigner)

Se aplica a

Producto Versiones
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

Consulte también