Comment savoir si un contrôle est au moment du design ou non?
J'ai une classe (de contrôle), la mise en œuvre de ICustomTypeDescriptor, qui est utilisé à la fois au moment de la conception et de l'exécution par la grille de propriété à des fins de personnalisation. J'ai besoin d'exposer les différentes propriétés au moment de la conception (contrôles standard des propriétés comme width
height
et ainsi de suite) et au moment de l'exécution, lorsque la grille de propriété est utilisée dans mon programme pour modifier les autres propriétés de ce contrôle.
Mon code est comme:
class MyControl : UserControl, ICustomTypeDescriptor
{
//Some code..
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
return GetProperties();
}
public PropertyDescriptorCollection GetProperties()
{
//I need to do something like this:
if (designTime)
{ //Expose standart controls properties
return TypeDescriptor.GetProperties(this, true);
}
else
{
//Forming a custom property descriptor collection
PropertyDescriptorCollection pdc = new PropertyDescriptorCollection(null);
//Some code..
return pdc;
}
}
}
Est-il un analogue pour un moment de la conception du pavillon en C#? Est-il peut-être préférable d'utiliser la compilation conditionnelle?
source d'informationauteur Vasya
Vous devez vous connecter pour publier un commentaire.
Vérifier si DesignMode est vrai ou faux. C'est une propriété qui appartient à la lutte de la classe de base.
Le drapeau doit être
DesignMode
. Par conséquent, votre code devrait ressembler à ceciIci est la fonction Doc MSDN.
Utiliser le
DesignMode
propriété de la base. Cela va vous parler de la mode.