在WinForms中隐藏Crystal Report的[MainReport]标签页

发现的问题

如下图,多出个Main Report,看上去很碍眼,得想办法除掉.但在CrystalReportViewer的控件中,没有对应的属性可以直接隐藏.

untitled2

Google一番,发现MSDN论论上也有人问此问题.

http://social.msdn.microsoft.com/Forums/en-US/vscrystalreports/thread/405aecc9-f5fa-47d3-afa1-15a9256b395e

 

解决方法

增加如下代码:

       private void Form1_Load(object sender, EventArgs e)

        {

           HideTabs(this.crystalReportViewer1);

        }

 

        public void HideTabs(CrystalReportViewer viewer)

        {

            foreach (Control control in viewer.Controls)

            {

                if (control is PageView)

                {

                    TabControl tab = (TabControl)((PageView)control).Controls[0];

 

                    tab.ItemSize = new Size(0, 1);

                    tab.SizeMode = TabSizeMode.Fixed;

                    tab.Appearance = TabAppearance.Buttons;

 

                }

            }

        }

再跑报表,MainReport消失了!

untitled

进一步完善

其实,我们可以继承一个CrystalReportViewr,然后自定义一些功能(如增加一个导出PDF的按钮)或重写它的功能(如隐藏MainReport).留给大家自己动手试吧.

可以参考:http://msdn.microsoft.com/en-us/library/ms227538.aspx

原文地址:https://www.cnblogs.com/rockniu/p/1554117.html