XtraTabControl中添加子页面自适应问题

主窗体中添加了XtraTabControl控件,在上方点击按钮时将子窗体添加到该页面

代码为:

private void AddPageIntoTab(Form AddPage, string PageName)
        {
            bool found = false;//是否已打开过标识
            DevExpress.XtraTab.XtraTabPage selectedPage = null;//选中状态null
            foreach (DevExpress.XtraTab.XtraTabPage page in PageGroup.TabPages)
            {
                if (page.Tag != null && page.Text == PageName)
                {
                    found = true;
                    selectedPage = page;
                    break;
                }
            }//查找页面是否存在
            if (!found)
            {
                selectedPage = new DevExpress.XtraTab.XtraTabPage();
                selectedPage.Text = PageName;
                selectedPage.Name = "PageGroup_" + AddPage.Name;
                selectedPage.Tag = AddPage;
                selectedPage.Appearance.Header.Font = new Font("微软雅黑", 10);
                AddPage.TopLevel = false;
                AddPage.FormBorderStyle = FormBorderStyle.None;
                AddPage.ControlBox = false;
                AddPage.Show();
                selectedPage.Controls.Clear();
                selectedPage.Controls.Add(AddPage);
                if (!AddPage.IsDisposed)
                {
                    PageGroup.SelectedTabPage = selectedPage;
                    PageGroup.TabPages.Add(selectedPage);   //把tabpage加入到tabcontrol里
                }
            }
            else
            {
                if (selectedPage.Tag != null && selectedPage.Tag != AddPage)
                {
                    AddPage.TopLevel = false;
                    AddPage.Dock = DockStyle.Fill;
                    AddPage.FormBorderStyle = FormBorderStyle.None;
                    AddPage.WindowState = FormWindowState.Maximized;//设置窗体最大化
                    AddPage.Show();
                    selectedPage.Controls.Clear();
                    selectedPage.Controls.Add(AddPage);
                }
            }
            AddPage.Dock = DockStyle.Fill;
            selectedPage.BringToFront();
            PageGroup.SelectedTabPage = selectedPage;
        }//添加页面至Tab

添加后子窗体契合当前窗体分辨率,但在主窗体中点击最大化时,子窗体还是保留原样没有自适应放大

在网上找过很多教程都无法自适应,该怎么解决?

 

 

回答不易,求求您采纳点赞哦

您可以在XtraTabControl.TabsPageAdding事件中,通过使用XtraTabPage.PageVisible属性来实现该功能,具体方法如下:

1.在“子窗体添加”按钮的Click事件中向XtraTabControl 页面添加子窗体;
2.在 XtraTabControl.TabsPageAdding 事件中使用XtraTabPage.PageVisible属性,以便将子窗体缩放至主窗体当前大小。
3.在 XtraTabControl.SizeChanged事件中调整XtraTabPage 的大小,以便子窗体能够自适应主窗体大小。

你这个应该不是子窗口没有自适应吧,输入栏和查询按钮在放大窗口后其实不会有变化,文本输出显示框也是作为组件被限制了大小。
实际上你就算做到了子窗口自适应主界面窗口,那么看到的效果也还是一样的。
如果是想要文本输出可以自适应大小,那么应该监听主界面窗口的变化事件,把需要跟随变化的组件缓存起来同步跟随其变化。
以前做过一个多页签的输出控制台,跟题主这个类似,最后的方案就是缓存组件后同步跟随主界面自适应,输出内容做滚动,效果其实还可以。
不知道对你有没有帮助,思路仅供参考,望采纳哦~