1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Как Скрыть От Propertygrid Некоторые Event

Тема в разделе ".NET - программирование", создана пользователем Avol, 17 дек 2013.

  1. Avol

    Avol New Member

    Репутация:
    0
    Регистрация:
    17 дек 2013
    Сообщения:
    1
    Симпатии:
    0
    как скрыть от PropertyGrid некоторые Event. Вот так к примеру я скрываю свойства:

    Код C#

    Код:
    public class PGConverter : TypeConverter
    {
    public override bool GetPropertiesSupported(ITypeDescriptorContext context)
    {
    return true;
    }
    
    /// <summary>
    /// Получение списка пропертей класса
    /// </summary>
    public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes)
    {
    string name = ((Control)value).GetType().FullName;
    // получим список всех видимых свойств
    PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(value, attributes, true);
    
    List<PropertyDescriptor> propList = new List<PropertyDescriptor>();
    for (int i = 0; i < pdc.Count; i++)
    {
    if (pdc[i].ComponentType.IsAbstract)
    continue;
    
    //замена созданию инстансов
    if (pdc[i].ComponentType.FullName == name)
    {
    //object obj = Activator.CreateInstance(pdc[i].ComponentType);
    //if (obj is IBaseWidget)
    propList.Add(pdc[i]);
    }
    }
    PropertyDescriptor[] propArr = new PropertyDescriptor[propList.Count];
    for (int i = 0; i < propList.Count; i++)
    propArr[i] = propList[i];
    return new PropertyDescriptorCollection(propArr);
    }
    }
    а в классе просто прикручен конвертер


    Код:
    [TypeConverterAttribute(typeof(PGConverter))]
    partial class Class1 : UserControl
    {
    как бы мне также с событиями сделать? смотрел класс ComponentDesigner, который предоставляет коллекцию событий, но как ее переопределить... этот класс не наследуемый. Буду рад если поможете советом.
     
Загрузка...

Поделиться этой страницей