Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Отключение свойств в Property Grid


Автор: ДобренькийПапаша 6.5.2010, 12:39
На форме есть MsChart, кинул ещё PropertyGrid и задал 
Код

propertyGrid1.SelectedObject=currentChart;

Теперь в гриде отображаются все свойства. Как запретить определённые свойства. Например мне надо запретить все свойства, входящие в категорию "Диаграмма" (мне надо оставить только "Вид" и "Внешний вид").

Автор: ДобренькийПапаша 9.5.2010, 10:36
Нашёл в МСДН такой код:
Код

AttributeCollection attributes =
            TypeDescriptor.GetProperties(currentChart)["Text"].Attributes;
            BrowsableAttribute myAttribute = (BrowsableAttribute)attributes[typeof(BrowsableAttribute)];
            if (myAttribute.Browsable)
            {
                // Insert code here.
                
               //А что дальше-то? myAttribute.Browsable не имеет сеттера!
            }


Свойство browsable не имеет сеттера. Какой толк от всего этого?

Попробовал убрать свойства вот так:
Код

[Designer(typeof(MyChart.MyControlDesigner))]
public class MyChart : Chart
{

    internal class MyControlDesigner : ControlDesigner
    {

        protected override void PostFilterProperties(IDictionary properties)
        {
            properties.Remove("Text");
            properties.Remove("AutoScrollMinSize");
            properties.Remove("BackgroundImage");

        }
    }
}


Однако, на видимость свойств это не повлияло!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)