如何使用BrowsableAttribute类在propertygrid中显示

时间:2011-07-27 02:36:01

标签: c# visual-studio-2005

我需要在属性窗口中显示这些srings'm_nullPolicy'和'm_nullVersion',我的意思是在属性网格中。截至目前它正在显示 在UI中。当我进行搜索时,我可以看到BrowsableAttribute Class会这样做,但我不知道如何在这里实现它,任何人都可以在这里指导我

这是在UI

中显示值的代码
if (Data.ResourcePolicy == null)
                            {
                                if (Data.AgentVersion == null)
                                {
                                    SubItems.Add(ResourcePolicyAvailSystemsLVI.m_nullString);
                                }
                                else
                                {
                                    SubItems.Add(m_nullPolicy);
                                }
                            }
                            else
                            {
                                SubItems.Add(Data.ResourcePolicy.Name);
                            }
                            if (Data.AgentVersion == null || Data.AgentVersion.Equals("0.0.0.0"))
                            {
                                SubItems.Add(ResourcePolicySystemsControl.m_nullVersion);
                            }
                            else
                            {
                                SubItems.Add(Data.AgentVersion);
                            }

1 个答案:

答案 0 :(得分:0)

手动使用PropertyGrid进行取消时,BrowsableAttribute不适用。

手动我的意思是,逐个在属性网格上插入项目。

但是,您可以使用自动方式...即,使用包含BrowsableAttribute属性的对象,并将对象分配给SelectedObject属性。

请尝试以下操作:

创建一个具有某些属性的类,例如:

    class MyClass
    {
        public string Name { get; set; }

        [BrowsableAttribute(false)]
        public string InvisibleProperty { get; set; }
    }

创建一个带有属性网格的表单。

现在,实例化该类并将其分配给SelectedObject属性,可能采用表单加载事件:

    private void Form1_Load(object sender, EventArgs e)
    {
        propertyGrid1.SelectedObject = new MyClass();
    }

在此示例中,属性网格将显示Name属性,但不显示InvisibleProperty