【问题标题】:Controls in the Toolbox are grayed out. How can I use them?工具箱中的控件显示为灰色。我该如何使用它们?
【发布时间】:2019-01-27 17:13:50
【问题描述】:

我有一个包含类库和 Windows 窗体应用程序的解决方案。 我添加了一个“测试”Windows 窗体应用程序用于测试目的。

在“测试”项目中,类库控件按预期出现在工具箱中。 WinForms 应用程序的控件仅在“显示全部”之后出现并且呈灰色显示。

是否可以从工具箱访问属于原始 WinForms 应用程序的控件?

使用 Visual Studio 社区 2017,

我试过了:

  1. 关闭、重新打开、清理和重建解决方案。
  2. 添加参考。
  3. 重新启动 Visual Studio。
  4. '重置工具箱'。
  5. 检查“自动填充工具箱”。
  6. 将 WinForms 应用程序输出类型更改为类库。

第 6 点有效,因此这种行为实际上可能是设计使然。这不是过去,所以请告诉我。

【问题讨论】:

  • 您是否将自定义控件类定义为public?或者你只有class MyControl : SomeStandardControl { }?
  • 另外,您是否在启动(WinForms)项目的Solution properties -> Common Properties -> Project Dependencies中设置了依赖关系,将其设置为类库项目?当您这样做时,除非您在自定义控件类结构中出现错误,否则您将在 WinForms 项目工具箱中看到这些控件(即当您在设计器中打开了一个表单时)。
  • 是的,自定义控件是公开的。
  • 引用类库控件不是问题。引用原始 WinForms 应用程序中的控件是。我过去曾经能够做到这一点,因此我感到困惑。
  • 你能把控件构造函数的代码贴出来吗?您是否按照说明设置了其他选项?我不知道这是什么意思:引用类库控件。您不必引用控件。当您在类库中有一个控件时,您只需像往常一样将它从工具箱中拖放到窗体上(或在代码中构建它)。另外,检查两个项目的位数:它必须相同。

标签: c# winforms visual-studio-2017 toolbox


【解决方案1】:

See this answer

您需要在创建项目时选择Windows Form (.NET Framework) 作为项目类型。不是另一个只是 Windows 窗体

【讨论】:

  • 感谢发帖。现在使用 VS2019,我没有“Windows 窗体”选项。我有“Windows 窗体应用程序(.NET Framework)”和“Windows 窗体应用程序(.NET)”选项。其中带有“框架”的选项仍然不起作用,并且在工具箱中也不再可见。但是,没有“框架”的选项确实显示在工具箱中,并且可以直接使用控件。我已经确定这是一个纯粹的 VS 编辑器相关的事情。不值得为新项目花时间,但当您不允许更改项目结构时,对于旧项目可能会很麻烦。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-16
  • 1970-01-01
  • 1970-01-01
  • 2013-02-21
  • 2010-11-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多