如何使Browsable(false)在IDE中实际隐藏属性

4

下午好,

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

然而,Visual Studio似乎完全忽略了这个属性。我已经尝试构建所有项目,重置工具箱,但都没有成功。请帮忙解决。

谢谢和问候, -Alan.

[Browsable(false)]  // I have also tried [BrowsableAttribute(false)]
public bool IsBusy
{
    get
    {
        return _isBusy;
    }
    set
    {
        throw new InvalidOperationException("");
    }
}

甚至当IDE允许我将属性从false编辑为true时,它也不会抛出异常! - Alan
2
@Alan - 为什么不将它设置为只读属性? - Geoff Appleford
你使用的是哪个版本的Visual Studio? - Ryan Lundy
我尝试将其设置为只读属性[ReadOnly(true)]以及[ReadOnlyAttribute(true)]。但是也没有起作用:( - Alan
Visual Studio 2008(抱歉之前漏掉了) - Alan
@Alan - 不是那样。省略 set 块。请参阅 http://msdn.microsoft.com/en-us/library/w86s7x04(v=VS.100).aspx#Y1800。如果需要,可以使用公共方法来设置属性。 - Geoff Appleford
1个回答

7

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

我猜你真正的问题是工具箱程序集文件夹中存储的旧控件副本。如果使用“选择项”、“浏览”选项卡将控件添加到工具箱中,则会创建这样的副本。您可能正在更新本地副本,但未更新工具箱版本。

我需要稍微解释一下,我知道这可能会发生,但从未发现过如何发生的原因。这对我个人来说从未出过问题,但我总是确保让工具箱自动填充而不是显式添加控件。如果您确实是这样添加的,请从删除开始。右键单击工具箱中的项目,然后选择“删除”。该副本存储在c:\users\yourname\appdata\local\microsoft\visualstudio\x.x\projectassemblies中。


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接