相对较新的WinForms中使用C#的ReportViewer。我要做的是将报表的工具栏移到底部。实现此目的的一种方法应该是仅在页面上放置一个工具条,然后从工具栏构建它。看起来比较容易,只需将几行代码插入Load事件中即可:
// move the toolbar from the report viewer to the toolstripcontainer
ToolStrip toolStrip = (ToolStrip)FirstTestReport.Controls.Find("toolStrip1", true)[0];
toolStrip.GripStyle = ToolStripGripStyle.Hidden;
this.toolStripContainer1.TopToolStripPanel.Controls.Add(toolStrip);
this.FirstTestReport.ShowToolBar = false;
this.toolStripContainer1.Visible = true;
Sorta工作了。因此,顶部的工具栏消失了,但是底部的工具栏却从未出现过。在逐步执行代码时,我意识到ToolStrip始终具有Visible值False。我试图添加一行以使其可见(ToolStrip.Visible = True
),但是它没有运行代码。它给了我一个错误:
非静态字段,方法或属性“ Control.Visible”需要对象引用
关于如何解决此问题的任何想法?
答案 0 :(得分:2)
使用ToolStripContainer
如果还希望将其添加到工具条容器的底部面板中,则:
var toolStrip = (ToolStrip)reportViewer1.Controls.Find("toolStrip1", true)[0];
toolStrip.GripStyle = ToolStripGripStyle.Visible;
var reportToolbar = toolStrip.Parent;
reportToolbar.Visible = false;
this.toolStripContainer1.BottomToolStripPanel.Controls.Add(toolStrip);
没有ToolStripContainer
var toolStrip = (ToolStrip)reportViewer1.Controls.Find("toolStrip1", true)[0];
toolStip.Parent.Dock = DockStyle.Bottom;
屏幕截图