C sharp - Mostrar/Ocultar propiedades de un custom control

 
Vista:
sin imagen de perfil
Val: 6
Ha aumentado su posición en 15 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

Mostrar/Ocultar propiedades de un custom control

Publicado por Iñigo (2 intervenciones) el 29/09/2019 11:56:34
Hola.
Estoy intentando realizar un custom control, el cual deriva de Button.
La cuestión es que quiero crear una serie de propiedades para el editor, de tal forma que cuando arrastres el nuevo botón, tengas disponibles las características en el editor de VStudio.

Hasta ahí, ningún problema. El tema está que en función de lo que elijas en algunas de estas propiedades me gustaría que otras de esas propiedades se hicieran visibles o se ocultaran.
He intentado con Reflection y jugando con la propiedad browsable, y sí, oculto o muestro las propiedades, pero todas a la vez.
Es decir, las propiedades fijas que siempre son visibles tienen Browsable(true), y las que quiero que varíen, no se lo pongo.
La cuestión es que las que no tienen Browsable, entonces se muestran o se ocultan todas a la vez, no haciendo caso a la propiedad que le estoy diciendo que se muestre o se oculte.
Es decir, se ocultan todas o se muestran todas, no la propiedad que yo le digo explícitamente.
En cambio, si uso isReadOnly, ahí si puedo jugar con cada una individualmente.


El código más o menos, es este:

1
2
3
4
5
6
7
8
9
10
PropertyDescriptor descriptor = TypeDescriptor.GetProperties(this.GetType())[propertyName];
			BrowsableAttribute attribute = (BrowsableAttribute)
										  descriptor.Attributes[typeof(BrowsableAttribute)];
			System.Reflection.FieldInfo fieldToChange = attribute.GetType().GetField("browsable",
											 System.Reflection.BindingFlags.NonPublic |
											 System.Reflection.BindingFlags.Instance);
 
			if (fieldToChange != null) fieldToChange.SetValue(attribute, isBrowsable);
			this.Refresh();
		}

¿Alguna idea para programar lo que quiero hacer?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 50
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

Mostrar/Ocultar propiedades de un custom control

Publicado por Zausen (22 intervenciones) el 08/10/2019 10:51:45
Has mirado los decoradores? A lo mejor hay algún if global que funcione en tiempo de desarrollo.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 6
Ha aumentado su posición en 15 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

Mostrar/Ocultar propiedades de un custom control

Publicado por Iñigo (2 intervenciones) el 08/10/2019 18:14:35
No he trabajado nunca con decoradores, no estoy muy puesto.
Buscaré información.
Muchas gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 50
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

Mostrar/Ocultar propiedades de un custom control

Publicado por Zausen (22 intervenciones) el 09/10/2019 08:43:27
Mucho ánimo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar