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

Avol

New member
17.12.2013
1
0
#1
как скрыть от 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, который предоставляет коллекцию событий, но как ее переопределить... этот класс не наследуемый. Буду рад если поможете советом.