【发布时间】:2019-01-27 17:13:50
【问题描述】:
我有一个包含类库和 Windows 窗体应用程序的解决方案。 我添加了一个“测试”Windows 窗体应用程序用于测试目的。
在“测试”项目中,类库控件按预期出现在工具箱中。 WinForms 应用程序的控件仅在“显示全部”之后出现并且呈灰色显示。
是否可以从工具箱访问属于原始 WinForms 应用程序的控件?
使用 Visual Studio 社区 2017,
我试过了:
- 关闭、重新打开、清理和重建解决方案。
- 添加参考。
- 重新启动 Visual Studio。
- '重置工具箱'。
- 检查“自动填充工具箱”。
- 将 WinForms 应用程序输出类型更改为类库。
第 6 点有效,因此这种行为实际上可能是设计使然。这不是过去,所以请告诉我。
【问题讨论】:
-
您是否将自定义控件类定义为
public?或者你只有class MyControl : SomeStandardControl { }? -
另外,您是否在启动(WinForms)项目的Solution
properties -> Common Properties -> Project Dependencies中设置了依赖关系,将其设置为类库项目?当您这样做时,除非您在自定义控件类结构中出现错误,否则您将在 WinForms 项目工具箱中看到这些控件(即当您在设计器中打开了一个表单时)。 -
是的,自定义控件是公开的。
-
引用类库控件不是问题。引用原始 WinForms 应用程序中的控件是。我过去曾经能够做到这一点,因此我感到困惑。
-
你能把控件构造函数的代码贴出来吗?您是否按照说明设置了其他选项?我不知道这是什么意思:引用类库控件。您不必引用控件。当您在类库中有一个控件时,您只需像往常一样将它从工具箱中拖放到窗体上(或在代码中构建它)。另外,检查两个项目的位数:它必须相同。
标签: c# winforms visual-studio-2017 toolbox