Share via


Cuadrícula de visualización de propiedades

La ventana Propiedades muestra campos dentro de una cuadrícula. La columna izquierda contiene los nombres de propiedad; la columna derecha contiene los valores de propiedad.

Trabajar con la cuadrícula

La lista de dos columnas muestra las propiedades independientes de la configuración que se pueden cambiar en tiempo de diseño y su configuración actual. Tenga en cuenta que es posible que no se muestren todas las propiedades. Una propiedad se puede establecer como oculta, por ejemplo, mediante la implementación del HideProperty método . En concreto, para ocultar las propiedades que tienen propiedades secundarias:

  1. Establezca el pfDisplay parámetro en DisplayChildPropertiesFALSE.

  2. Establezca el pfHide parámetro en HidePropertyTRUE.

Para insertar información en la ventana Propiedades , el IDE usa ISelectionContainer. ISelectionContainer los llama VSPackages para cada ventana que contiene objetos seleccionables con propiedades relacionadas que se van a mostrar en la ventana Propiedades . Explorador de soluciones implementación de ISelectionContainer llamadas GetProperty mediante __VSHPROPID. VSHPROPID_BrowseObject en la jerarquía del proyecto para adquirir los objetos explorables en la jerarquía.

Si VSPackage no admite __VSHPROPID. VSHPROPID_BrowseObject, el IDE intenta usar GetProperty el valor de __VSHPROPID . VSHPROPID_SelContainer que proporcionan el elemento de jerarquía o los elementos.

El proyecto VSPackage no necesita crear ISelectionContainer porque el paquete de ventana proporcionado por el IDE que lo implementa (por ejemplo, Explorador de soluciones) ISelectionContainer construye en su nombre.

ISelectionContainer consta de tres métodos a los que llama el IDE:

  • CountObjects contiene el número de objetos seleccionados que se mostrarán en la ventana Propiedades .

  • GetObjects devuelve los IDispatch objetos seleccionados para mostrarse en la ventana Propiedades .

  • SelectObjects permite seleccionar cualquiera de los objetos devueltos por GetObjects el usuario. Esto permite que VSPackage actualice visualmente la selección mostrada al usuario en la interfaz de usuario.

La ventana Propiedades extrae información de los IDispatch objetos para recuperar las propiedades que se examinan. El explorador Properties usa IDispatch para preguntar al objeto qué propiedades admite consultando ITypeInfo, que se obtiene de IDispatch::GetTypeInfo. A continuación, el explorador usa estos valores para rellenar la ventana Propiedades y cambiar los valores de las propiedades individuales mostradas en la cuadrícula. La información de propiedades se mantiene dentro del propio objeto.

Dado que los objetos devueltos admiten IDispatch, el autor de la llamada puede obtener información como el nombre del objeto llamando a IDispatch::Invoke o ITypeInfo::Invoke con un identificador de envío predefinido (DISPID) que representa la información deseada. Los DISPID declarados son negativos para asegurarse de que no entran en conflicto con identificadores definidos por el usuario.

La ventana Propiedades muestra diferentes tipos de campos en función de los atributos de propiedades específicas de un objeto seleccionado. Estos campos incluyen cuadros de edición, listas desplegables y vínculos a cuadros de diálogo de editor personalizados.

  • Una consulta recupera GetObjects los valores contenidos en una lista enumerada en IDispatch. Los valores obtenidos de una lista enumerada se pueden cambiar en la cuadrícula de propiedades haciendo doble clic en el nombre del campo, o haciendo clic en el valor y seleccionando el nuevo valor de la lista desplegable. Para las propiedades que tienen una configuración predefinida de listas enumeradas, haga doble clic en el nombre de propiedad de la lista Propiedades recorre las opciones disponibles. Para las propiedades predefinidas con solo dos opciones, como true/false, haga doble clic en el nombre de la propiedad para cambiar entre las opciones.

  • Si HasDefaultValue es false, que indica que se ha cambiado el valor, el valor se muestra en negrita. CanResetPropertyValue se usa para determinar si el valor se puede restablecer al valor original. Si es así, puede volver a cambiar al valor predeterminado haciendo clic con el botón derecho en el valor y seleccionando Restablecer en el menú que se muestra. De lo contrario, tendrá que volver a cambiar el valor al valor predeterminado manualmente. IVsPerPropertyBrowsing también permite localizar y ocultar los nombres de las propiedades que se muestran durante el tiempo de diseño, pero no afecta a los nombres de propiedad mostrados durante el tiempo de ejecución.

  • Al hacer clic en el botón de puntos suspensivos (...) se muestra una lista de valores de propiedad desde los que el usuario puede seleccionar (por ejemplo, un selector de colores o una lista de fuentes). IProvidePropertyBuilder proporciona estos valores.

Consulte también