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