父窗体中的子窗体全局变量:
private Form2 frm2 = new Form2();
父窗体调用显示子窗体方法:
private void LoadTabPageForm(XtraTabControl tabcontrol, Form form, String title)
{
bool found = false;
XtraTabPage selectedPage = null;
foreach (XtraTabPage page in tabcontrol.TabPages)
{
if (page.Tag != null && page.Text == title)
{
found = true;
selectedPage = page;
break;
}
}
if (!found)
{
selectedPage = new XtraTabPage();
selectedPage.Text = title;
selectedPage.Tag = form;
form.TopLevel = false;
form.Dock = DockStyle.Fill;
form.FormBorderStyle = FormBorderStyle.None;
form.Show();
selectedPage.Controls.Clear();
selectedPage.Controls.Add(form);
if (!form.IsDisposed)
{
tabcontrol.SelectedTabPage = selectedPage;
tabcontrol.TabPages.Add(selectedPage); //把tabpage加入到tabcontrol里
}
}
else
{
if (selectedPage.Tag != null && selectedPage.Tag != form)
{
form.TopLevel = false;
form.Dock = DockStyle.Fill;
form.FormBorderStyle = FormBorderStyle.None;
form.Show();
selectedPage.Controls.Clear();
selectedPage.Controls.Add(form);
}
}
selectedPage.BringToFront();
tabcontrol.SelectedTabPage = selectedPage;
}
调用:
frm2.MainForm = this;
LoadTabPageForm(xtraTabControl1, frm2, "测试子窗体");