La siguiente es la clase de diseño de control utilizado para construir la fuente completa etiquetas sensibles:
Como o_ActionLists privado DesignerActionListCollection
Público está por sobre la propiedad ReadOnly ActionLists () Como _
System.ComponentModel.Design.DesignerActionListCollection
Obtener
Si o_ActionLists Entonces Is Nothing
o_ActionLists = Nuevos DesignerActionListCollection
Dim ctlEmailContact Como EmailContact2 = _
CType (Componente, EmailContact2)
o_ActionLists.Add (_
Nueva EmailContactActionList (ctlEmailContact))
End If
Volver o_ActionLists
End Get
Fin de la Propiedad
En este ejemplo, se acaba de crear una clase ActionList, y el uso de un elemento de la lista se llene, y la clase será devuelto a la clase DesignerActionListCollection - esto es primordial que el diseñador de control ActionLists la propiedad de lograr. De hecho, puedo, de acuerdo con la necesidad práctica de crear la clase ActionList muchos, y simplemente añadir ActionLists conjunto de atributos puede ser. Si desea organizar lógicamente un gran número de elementos sensibles etiqueta - con el fin de reutilizarlos en varios controles, esto es muy útil. En cuanto a por qué y cuando la decisión de hacerlo, tienen que depender de lo real a decidir.
Ahora, he recopilado, el control y arrastrarlo a un formulario, voy a ver una pequeña flecha en la esquina superior derecha - haga clic en él muestra se puede ver en la Figura 2, el contenido. Aquí, el cambio de cualquiera de las propiedades con los cambios en el examinador de propiedades exactamente lo mismo. Haga clic en el enlace correspondiente a la aplicación del método en la clase EmailContactActionList definió el comportamiento.
En el control, vamos a hablar de estos elementos. Recuerde una cosa: No hay necesidad de agregar atributos a una etiqueta autoadhesiva.
En segundo lugar, siempre editar la plantilla de diseño
En el artículo anterior, he introducido la forma de controlar su capacidad de agregar plantillas. Aquí, simplemente implicar sólo un poco, porque es una relación entre la discusión aquí - me refiero a la interfaz de la capacidad de diseño de formularios web para editar la plantilla el contenido - en la época anterior de ASP.NET 1.x se no es fácil de lograr.
Plantilla de diseño de edición de tiempo de tal control en GridView - usted puede colocar el control "plantilla modo de edición, y sólo de los demás controles se pueden arrastrar a la plantilla región. Sin esto, es conveniente, los desarrolladores de páginas debe cambiar a la vista ASPX y manualmente así crear la plantilla de contenido:
dnd:EmailContact runat="server" ID="ctl1"
HeaderTemplate
asp:Label ID="lbl1" Text="Label" runat="server" /
asp:TextBox ID="txt1" runat="server"/
/ HeaderTemplate
FooterTemplate
asp:LinkButton ID="lnk1" Text="LinkButton" runat="server" /
/ Asp: LinkButton
asp:DropdownList ID ="ddl1" runat="server" /
/ FooterTemplate
/ Dnd: contacto del email
Aunque esto no es tan malo, pero los desarrolladores utilizar para hacer la interfaz de diseño de páginas efecto del diseño será mejor.
Con el fin de plantilla de las capacidades de edición a un control, usted tiene que reemplazar el diseñador de control de la clase método Initialize y establecer un indicador para informar el diseñador que quiere apoyar la edición de plantillas.
Invalida Pública Sub Inicializar (_
Como componente IComponent ByVal)
MyBase.Initialize (componente)
SetViewFlags (ViewFlags.TemplateEditing, True)
End Sub
Tenga en cuenta que en el presente, hago un llamamiento a los métodos de la clase base para asegurarse de que no quiero para lograr la cancelación de su contenido. La presente convocatoria se informará a la compatibilidad con el diseñador de plantillas de edición, pero aún falta modificar la realización de una parte de la programación.
Microsoft ha utilizado para construir la forma en que el diseñador es la plantilla a la plantilla de la clasificación por grupos; este caso, estará en su control hay muchas plantillas. Plantilla de sí mismo es objeto de una conocida TemplateDefinition definidas, y TemplateGroup objeto contiene uno o más de estas definiciones objetos. TemplateGroup objeto contiene un tipo de objeto TemplateGroupCollection; Por lo tanto, es aquí (tipo de objeto TemplateGroupCollection), declaración de la clase de diseño en el nivel de clase en una variable de este tipo. Como en el caso de las etiquetas sensibles, como la infraestructura es responsable de almacenamiento en caché de este objeto - este soy yo en una declaración sobre el alcance de nivel de clase de sus motivos.
Como o_TemplateGroups privado TemplateGroupCollection = Nothing
El conjunto construido para obtener una propiedad llamada TemplateGroups - Ahora tengo que reemplazar el. Es este atributo del contenido será expuesto a los desarrolladores a fin de lograr la página correspondiente edición de plantillas.
Público está por sobre la propiedad ReadOnly
TemplateGroups () Como TemplateGroupCollection
Obtener
Si o_TemplateGroups Entonces Is Nothing
...
End If
Volver o_TemplateGroups
End Get
Fin de la Propiedad
Sobrecarga en esta propiedad, voy a construir de Visual Studio para utilizar el TemplateGroupCollection. Propiedad en el es "nada" de verificación ayuda a prevenir la reconstrucción innecesaria de este objeto.