** 更新**:2019 年 11 月 19 日
Microsoft 已在其 Nuget 库中发布了新版本的控件 150.1400.0。我的简短测试表明它在 150.1357.0 和 150.1358.0 没有的表单设计器中再次起作用。这包括能够在控件本身上调整和修改 ReportViewer 任务的大小。
** 更新**:2019 年 8 月 18 日
删除最新版本并回滚到 150.900.148.0 似乎适用于我正在使用 VS2017 和 VS2019 的多台计算机。
您可以在 Nuget 解决方案包管理器中回滚到 150.900.148。它的工作原理与以前的版本类似。使用下拉框选择旧版本。
手动删除对 150.900 版本 ReportViewer 的引用并重新读取它们可能比修复它们更容易。
请记住在更改工具箱条目后重新启动 Visual Studio。
更新:2019 年 8 月 7 日
已发布更新版本的 ReportViewer 控件,可能与 Visual Studio 2019 一致。我使用的是 V150.1358.0。
按照此答案中的说明获得设计器工具箱中的控件。但是一旦放在表单上它就不会显示。该控件作为非可视组件显示在表单下方。
这是根据 Microsoft SQL BI 支持设计的。这是负责控制的组。
虽然您仍然无法直接与控件交互,但这些附加步骤提供了一种解决方法,因此可以在表单上调整控件的大小。虽然现在可见,但设计器将控件视为不存在。
我根据 Microsoft SQL BI 支持的建议创建了一个反馈请求。请考虑对其进行投票以引起 Microsoft 的注意。
Microsoft Azure Feedback page - Restore Designtime features of the WinForms ReportViewer Control
其他步骤:
- 将报表查看器添加到 WinForm 后
- 将面板控件添加到 WinForm。
-
在表单的 form.designer.cs 文件中,将 Reportviewer 控件添加到面板中。
//
// panel1
//
this.panel1.Controls.Add(this.reportViewer1);
返回表单设计器,您应该会在面板上看到reportViewer
- 在“属性”面板中,在控件列表下拉菜单中选择 ReportViewer
- 将 reportViewer 的 Dock 属性设置为 Fill
现在您可以通过实际与面板交互来定位 reportViewer。
更新:Microsoft 于 2017 年 4 月 18 日发布了document,描述了如何在 Visual Studio 2017 中配置和使用报告工具。
Visual Studio 2017 的工具箱中默认没有安装ReportViewer 工具。安装扩展 Microsoft Rdlc Report Designer for Visual Studio,然后将其添加到 ToolBox 会导致出现在表单下方的非可视组件。
Microsoft 支持告诉我这是一个错误,但截至 2017 年 4 月 21 日,它“按设计工作”。
每个需要ReportViewer的项目都需要遵循以下步骤。
- 如果工具箱中有
ReportViewer,请将其删除。突出显示,右键单击并删除。
于 2019 年 8 月 7 日编辑 - 当前版本的 RDLC 报表设计器扩展似乎不再干扰。您需要它来实际编辑报告。
如果您安装了 Microsoft Rdlc Report Designer for Visual Studio 扩展,请将其卸载。
关闭您的解决方案并重新启动 Visual Studio。这是
很关键的一步,如果VS没有重启就会报错
在解决方案之间切换。
- 打开您的解决方案。
- 打开 NuGet 包管理器控制台 (
Tools/NuGet Package Manager/Package Manager Console)
-
在 PM> 提示符下输入此命令,大小写很重要。
Install-Package Microsoft.ReportingServices.ReportViewerControl.WinForms
您应该会看到描述包安装的文字。
现在我们可以暂时将ReportViewer工具添加到工具箱中。
在工具箱中右击并使用Choose Items...
我们需要浏览到位于解决方案Packages 文件夹中的正确 DLL,因此请点击浏览按钮。
-
在我们的示例中,我们可以粘贴到包文件夹中,如包管理器控制台的文本所示。
C:\Users\jdoe\Documents\Projects\_Test\ReportViewerTest\WindowsFormsApp1\packages
-
然后双击名为
Microsoft.ReportingServices.ReportViewerControl.Winforms.140.340.80
版本号将来可能会改变。
然后双击lib,再次双击net40。
-
最后双击文件Microsoft.ReportViewer.WinForms.dll
您应该会在对话框中看到 ReportViewer 已选中。滚动到右侧,您将看到与之关联的版本 14.0.0.0。
点击确定。
ReportViewer 现在位于工具箱中。
请记住,当您需要使用ReportViewer 打开项目时,请务必重新启动 Visual Studio,以便从正确的位置加载 DLL。如果您尝试使用带有ReportViewer 的表单打开解决方案而不重新启动,您将看到指示“The variable 'reportViewer1' is either undeclared or was never assigned.”的错误。
如果您将新项目添加到您需要创建项目的同一解决方案中,保存解决方案,重新启动 Visual Studio,然后您应该能够将 ReportViewer 添加到表单中。我第一次看到它不起作用并显示为非可视组件。
当发生这种情况时,从表单中删除组件,从项目中删除 Microsoft.ReportViewer.* 引用,保存并重新启动通常可以工作。