2008-08-27 14 views
36

¿Cómo impide que el diseñador genere automáticamente el código que establece el valor de las propiedades públicas en un control de usuario?¿Cómo impide que el Diseñador genere código para propiedades públicas en un Control de usuario?

+3

me pregunto cuál es el propósito para el diseñador de mono con sus propiedades ... – GorillaApe

+0

he tenido problemas abrir el diseñador porque' accidentalmente serialicé un objeto de una versión anterior de una clase que estaba usando. Tedious para rastrear: http://stackoverflow.com/questions/28272552/visual-studio-2013-designer-trying-to-load-wrong-version-of-project-dll – scotru

Respuesta

61

Utilice la DesignerSerializationVisibilityAttribute sobre las propiedades que desea ocultar de la serialización diseñador y establecer el parámetro en Oculto.

[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] 
public string Name 
{ 
    get; 
    set; 
} 
+1

¡Ah, finalmente puedo resolver este molesto problema! –

+0

Muy útil si el formulario base tiene propiedad pública vinculada a la propiedad de texto de un control. El editor desea establecer el valor en forma heredada y, por lo tanto, se confunde con la localización. Similar a [otro problema] (http://stackoverflow.com/q/13145340/395718) en SO. – Dialecticus

5

Añadir los siguientes atributos a la propiedad en su control:

[Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] 
0

Un ligero cambio en la respuesta de Erik estoy utilizando VS 2013.

[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] 
public new string Name { 
    get; 
    set; 
} 
+1

Mi nombre de la propiedad a "Nombre" fue desafortunado. Hubiera sido mejor nombrarlo de otra manera porque todos los controles ya tienen una propiedad de Nombre. Esa es la razón por la que debe usar la nueva palabra clave para ocultar la propiedad de la clase base. :) –

+0

Sí, me he sentido culpable de esto desde la respuesta. – peterincumbria

+0

Según lo mencionado por el propio Erik esta respuesta, no agrega nada nuevo a la pregunta real – TheLethalCoder

Cuestiones relacionadas