首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Reportviewer不可见

Reportviewer不可见
EN

Stack Overflow用户
提问于 2015-05-17 00:10:32
回答 2查看 2.6K关注 0票数 0

我正在使用Visual Studio2013专业版和vb.net。当我启动一个新的Windows窗体并将ReportViewer拖到空白窗体上时,它没有出现在窗体上。在底部,它显示ReportViewer1;但是,看不到reportviewer。这意味着我不能将查看器附加到报表或数据库。

如果我开始一个全新的项目,我可以拖动reportVierwer。这是一个大项目,否则我会开始一个新的项目并完成它。

EN

回答 2

Stack Overflow用户

发布于 2015-08-12 17:11:53

由于某些原因(在VS2015上),ReportViewer实例未添加到InitializeComponents方法内的窗体的Controls集合中。

添加下面这一行(reportViewer是ReportViewer的实例)可以解决这个问题:

代码语言:javascript
复制
this.Controls.Add(reportViewer);
票数 2
EN

Stack Overflow用户

发布于 2015-05-17 02:05:59

您始终可以在后台代码中手动添加它,或者手动编辑设计器。

将Load事件处理程序添加到窗体,以便在加载时刷新报表查看器:

代码语言:javascript
复制
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Me.ReportViewer1.RefreshReport()
End Sub

并在设计器中创建ReportViewer实例。在InitializeComponent

代码语言:javascript
复制
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方法,然后从您的代码中调用该方法。这样,您就不会将设计器代码与逻辑混在一起,也不会冒着更改被设计器删除的风险。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30277898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档