【问题标题】:Seeing new properties on a custom UserControl in Visual Studio在 Visual Studio 中查看自定义 UserControl 的新属性
【发布时间】:2009-12-11 01:12:40
【问题描述】:

我的解决方案中有两个 C# .NET 项目。一个项目是一个包含 WinForms 自定义 UserControl 的 DLL。另一个项目是一个 WinForms EXE,它在 Form 上引用和使用 UserControl

我向UserControl 添加了一些属性,这样当我将控件放在窗体上时,我可以像任何其他控件一样在设计器中轻松设置这些属性。

在我向UserControl 添加新属性之前,一切都很好。新属性不会出现在表单设计器中。我已尝试进行深度重建并重新打开解决方案。

我可以手动进入 .designer.cs 文件并设置新属性的值。该项目将实际编译并运行,但表单设计者声称该属性不存在并且不会打开表单。

我发现唯一可行的方法是关闭并重新启动 Visual Studio。有没有其他方法可以在不重新启动 Visual Studio 的情况下查看新属性?

编辑 我尝试在一个干净的解决方案中重现它,一切似乎都有效。然后我记得在原始解决方案中,DLL 是通过构建后步骤签名并安装到 GAC 的。我认为 Visual Studio 表单设计器正在从 GAC 加载程序集以反映它以获取属性列表。在我添加新属性之前,这很好。我可以构建程序集并将其重新安装到 GAC,但 Visual Studio 看不到新属性。

【问题讨论】:

  • 这还没有解决?我遇到了同样的问题,即重启 VS 没有帮助。旧的有显示,新的没有。从源代码我可以访问它们,但设计师只是不会列出它们......

标签: .net winforms visual-studio-2008 user-controls


【解决方案1】:

Browsable 属性放在您的属性上:

[Browsable(true)]
public string MyProperty { get; set; }

当然,确保它被声明为公共的......

【讨论】:

  • 所有现有属性实际上都没有 Browsable 属性,但我仍然可以看到它们。他们都是公开的。即使我将 Browsable 属性添加到所有新旧属性,我仍然可以重现此问题....但我学到了一些新东西,请参阅我对原始问题的编辑。
【解决方案2】:

您可以尝试再次重建您的 DLL,删除然后添加您对主项目的引用。

【讨论】:

    【解决方案3】:

    我可以解决此问题的唯一方法是重新启动 VS 2008 解决方案。

    【讨论】:

    • 是的,我确实提到这是我可以让它识别新属性的唯一方法。我希望有更好的东西。
    猜你喜欢
    • 2013-09-08
    • 1970-01-01
    • 2012-03-16
    • 1970-01-01
    • 2017-10-05
    • 1970-01-01
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多