如何使用BrowsableAttribute类显示在propertygrid

本文关键字:propertygrid 显示 何使用 BrowsableAttribute | 更新日期: 2023-09-27 18:03:31

我需要显示这些字符串'm_nullPolicy'和'm_nullVersion'在属性窗口,我的意思是在属性网格。到目前为止,它正在显示在UI。当我做了一个搜索,我可以看到BrowsableAttribute类会这样做,但我不知道如何实现它在这里,谁能指导我这里

这是在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);
                            }

如何使用BrowsableAttribute类显示在propertygrid

手动处理PropertyGrid时,BrowsableAttribute不适用。

我说的手动是指在属性网格中一个一个地插入项。

然而,你可以使用自动的方式…也就是说,使用一个包含带有BrowsableAttribute属性的对象,并将该对象分配给SelectedObject属性。

创建一个类,带有一些属性,例如:

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

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

现在,实例化类并将其分配给SelectedObject属性,可能在load事件中:

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

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