如何让 Browsable(false) 真正隐藏 IDE 中的属性

Posted

技术标签:

【中文标题】如何让 Browsable(false) 真正隐藏 IDE 中的属性【英文标题】:How can I get Browsable(false) to actually hide the property in the IDE 【发布时间】:2011-06-28 15:42:41 【问题描述】:

下午好,

我创建了一个具有布尔属性的用户定义组件。我希望 Visual Studio 不要在属性 Window 上显示它。我已经广泛搜索,共识似乎是尝试使用 Browsable/BrowsableAttribute 属性描述符。

Visual Studio 似乎完全忽略了这个属性。我尝试构建所有项目,但重置工具箱无济于事。请帮忙。

感谢和问候, -艾伦。

[Browsable(false)]  // I have also tried [BrowsableAttribute(false)]
public bool IsBusy

    get
    
        return _isBusy;
    
    set
    
        throw new InvalidOperationException("");
    

【问题讨论】:

当 IDE 让我将属性从 false 编辑为 true 时甚至不会抛出异常! @Alan - 你为什么不把它设为只读属性? 您使用的是什么版本的 Visual Studio? 我尝试将其设为只读属性 [ReadOnly(true)] 以及 [ReadOnlyAttribute(true)]。也没有工作:( Visual Studio 2008(抱歉省略) 【参考方案1】:

确实是[可浏览]。省略 setter 将是另一种方式,这在这种情况下是有意义的。

我猜您遇到的真正问题是该控件的旧副本存储在工具箱程序集文件夹中。如果您使用“选择项目”、“浏览”选项卡自己将控件添加到工具箱,则会制作这样的副本。您可能正在更新本地副本,而不是工具箱版本。

我需要稍微挥挥手,我知道它会发生,但从未发现它是如何发生的。这对我个人来说从来没有出错,但我总是确保让工具箱自动填充而不是显式添加控件。如果您确实像这样添加它,请从删除它开始。右键单击工具箱中的项目并选择删除。副本存储在 c:\users\yourname\appdata\local\microsoft\visualstudio\x.x\projectassemblies

【讨论】:

工作——我刚刚删除了整个目录(太烦了,找不到确切的有问题的文件)。此外,我为我的控件库命名,以便我可以仔细检查工具箱上的版本(工具提示显示版本)。 简而言之 -- 1) 强名称控制/组件库和重建,2) 关闭 Visual Studio,3) 核对该目录,4) 打开 Visal Studio,5) 重置工具箱。

以上是关于如何让 Browsable(false) 真正隐藏 IDE 中的属性的主要内容,如果未能解决你的问题,请参考以下文章

[Browsable(false)]

从设计器中隐藏 WPF 控件的属性 (Visual Studio 2010)

delphi2007如何让程序不在任务栏中隐藏和显示?

在Browsable活动中查找意图发件人的URL

unity游戏物体隐藏了协程会如何

QtableWidget表格中添加控件怎么居中