Как узнать, является ли элемент управления находится во время разработки или нет?

У меня есть класс (элемент управления), реализующий ICustomTypeDescriptor, который используется PropertyGrid как во время разработки, так и во время выполнения для настройки. Мне нужно предоставить разные свойства во время разработки (свойства стандартных элементов управления, такие как ширина , высота и так далее) и во время выполнения, когда PropertyGrid используется в моей программе для изменения других свойств этого элемента управления.

Мой код выглядит примерно так:

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;
        }
    }
}

Есть ли аналог флага времени разработки в C #? Может быть, лучше использовать условную компиляцию?

16
задан Peter Mortensen 20 February 2014 в 23:42
поделиться