【问题标题】:What are my options for filtering custom .net controls from the WinForms toolbox of Visual Studio 2008?从 Visual Studio 2008 的 WinForms 工具箱中筛选自定义 .net 控件的选项有哪些?
【发布时间】:2009-01-19 22:40:42
【问题描述】:

Visual Studio 2008 在检测控件并将控件从项目添加到工具箱以供表单设计器使用方面做得更好。如果您有一个具有 UserControl 或 DataSet 派生类型的程序集,那么它将自动检测该控件并将其添加到用于设计表单的工具箱中。这比 2005 年的旧系统更好,旧系统让您手动添加控件并且偶尔会忘记它们,等等。

但是,在我正在处理的遗留的单体项目中(现在升级到 vs2008),这意味着我不想要也不需要许多控件(对于这么多遗留代码,重新设计是没有保证的: ( )。我想如果我将某些类型设为内部或私有,那么它们就不会出现。但是,我需要其中许多保持公开,但不会出现在工具箱中。此外,添加了这么多控件到工具箱,打开winforms设计器速度明显变慢。

  1. 是否存在阻止工具箱外观的属性或其他机制(否则不会影响功能)?
  2. 使用这种机制进行过滤是否会在提高性能的同时自动检测工具箱中应该包含的新类型? (我知道您可以禁用自动检测,但在很多情况下都很好)
  3. 其他人在大型解决方案(包含许多 csproj/vbproj 文件)上遇到过这种烦恼吗?

编辑:谢谢大家!我知道它必须简单(并且可能是一个属性),但这填补了空白。很高兴知道我在不知道 ToolBoxItem(false) 的情况下相处得很好。

【问题讨论】:

    标签: winforms visual-studio-2008 user-controls designer toolbox


    【解决方案1】:

    以下属性应将其从工具箱中隐藏:

    [ToolboxItem(false)]
    

    如果您将其应用于所有您不想显示的类型,它仍会显示您创建的任何没有此属性的新类型。请注意,您可能必须手动删除开始使用的项目。

    这个blog post 显示了您可能想要使用的一些其他属性。

    【讨论】:

      【解决方案2】:

      浏览工具箱并为您看到要隐藏的每个自定义控件,在类上方添加以下属性:

      [工具箱项(假)]

      当然,这是一个编译属性,会影响使用代码的每个人,所以我只建议对没有拖放意义的控件执行此操作。否则,你可能会让喜欢这种控制的人非常非常生气。 :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-12-22
        • 2011-09-23
        • 2012-02-02
        • 1970-01-01
        • 2010-11-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多