我正在使用Visual Studio 2013 Professional和vb.net。当我启动一个新的Windows窗体并将ReportViewer拖到空白窗体时,它不会出现在窗体上。在底部,它显示了ReportViewer1;但是,没有可见的报告查看器。这意味着我无法将查看器附加到报表或数据库。
如果我开始一个全新的项目,我可以拖动reportVierwer。这是一个很大的项目,或者我只是开始一个新的项目。
答案 0 :(得分:1)
由于某种原因(在VS2015上),ReportViewer实例未添加到InitializeComponents方法内的表单的Controls集合中。
添加此行(reportViewer是ReportViewer的实例)可以解决问题:
this.Controls.Add(reportViewer);
答案 1 :(得分:0)
您可以随时手动将其添加到代码中,也可以手动编辑设计器。
将Load事件处理程序添加到表单以在Load:
上刷新报表查看器Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.ReportViewer1.RefreshReport()
End Sub
在设计器中创建ReportViewer
实例。在InitializeComponent
:
Private Sub InitializeComponent()
Me.ReportViewer1 = New Microsoft.Reporting.WinForms.ReportViewer()
'...
'
'ReportViewer1
'
Me.ReportViewer1.Location = New System.Drawing.Point(13, 13)
Me.ReportViewer1.Name = "ReportViewer1"
Me.ReportViewer1.Size = New System.Drawing.Size(396, 246)
Me.ReportViewer1.TabIndex = 0
'...
End Sub
Friend WithEvents ReportViewer1 As Microsoft.Reporting.WinForms.ReportViewer
这不是理想的解决方案。添加到主代码时,您将混合表示和逻辑。修改设计器代码时,存在被覆盖的风险。
也许一些改进是创建另一个Form部分类,您可以在其中放置上述代码。例如,作为LoadReportViewer
方法,然后从您的代码中调用该方法。这样,您就不会将设计器代码与逻辑混合在一起,并且您不会冒被设计者删除更改的风险。