C# 在Panel上加载窗体
在Panel上加载一个窗体,类似MDI窗体,原以为像Delphi一样直接把form的parent设置为panel就可以实现.在写代码时没问题,运行时弹出error:Top-level control can not be added to a control(无法将顶级控件添加到控件),查看form的属性后发现要把TopLevel = false才能实现.最后的代码如下:
private void ShowFormAsChild(XtraForm AFrom, Control AParent)
{
this.Text = "Product Listing - " + AFrom.Text;
for (int i = 0; i < panelControl1.Controls.Count; i++)
if (panelControl1.Controls[i] is XtraForm)
((XtraForm)panelControl1.Controls[i]).Hide();
AFrom.FormBorderStyle = FormBorderStyle.None;
AFrom.TopLevel = false;
AFrom.Parent = AParent;
AFrom.Dock = DockStyle.Fill;
AFrom.Show();
AFrom.BringToFront();
AFrom.Focus();
}
private ShowerFrm showerfrm = null;
private void navBarItem1_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
{
if (showerfrm == null || showerfrm.IsDisposed)
showerfrm = new ShowerFrm();
ShowFormAsChild(showerfrm, panelControl1);
}