我正在使用Visual Studio2013专业版和vb.net。当我启动一个新的Windows窗体并将ReportViewer拖到空白窗体上时,它没有出现在窗体上。在底部,它显示ReportViewer1;但是,看不到reportviewer。这意味着我不能将查看器附加到报表或数据库。
如果我开始一个全新的项目,我可以拖动reportVierwer。这是一个大项目,否则我会开始一个新的项目并完成它。
发布于 2015-08-12 17:11:53
由于某些原因(在VS2015上),ReportViewer实例未添加到InitializeComponents方法内的窗体的Controls集合中。
添加下面这一行(reportViewer是ReportViewer的实例)可以解决这个问题:
this.Controls.Add(reportViewer);发布于 2015-05-17 02:05:59
您始终可以在后台代码中手动添加它,或者手动编辑设计器。
将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这不是理想的解决方案。当添加到你的主代码时,你混合了表示和逻辑。当修改设计器代码时,它有被重写的风险。
也许一些改进是创建另一个窗体分部类,您可以在其中放置上述代码。例如,作为LoadReportViewer方法,然后从您的代码中调用该方法。这样,您就不会将设计器代码与逻辑混在一起,也不会冒着更改被设计器删除的风险。
https://stackoverflow.com/questions/30277898
复制相似问题