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

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

  1. Avol

    Avol New Member

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

    Код C#

    Код (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);
    }
    }
    а в классе просто прикручен конвертер


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

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