1、新建主窗体frmMain,并在其类增加一属性
public DockPanel DockPanel
{
get
{
return this.dockPanel;
}
}
2、增加子窗体frmSysMenu,并增加一方法
private Control GetTopParent(Control control)
{
while (control.Parent != null)
{
control = control.Parent;
}
return control;
}
3、如何在子窗体frmSysMenu里调用其他子窗体
try
{
//使用反射
object obj = Assembly.LoadFrom(strDllName + ".DLL").CreateInstance(strDllName.Substring(0, strDllName.Length - 3) + "." + strFrmName);
if (obj != null)
{
if (((frmMain)GetTopParent(this)).DockPanel.DocumentStyle == DocumentStyle.SystemMdi)
{
((DockContent)obj).MdiParent = (frmMain)GetTopParent(this);
((DockContent)obj).Show();
}
else
{
((DockContent)obj).Show(((frmMain)GetTopParent(this)).DockPanel);
}
}
}
catch (Exception ex)
{
//throw new Exception (ex.ToString() );
MessageBox.Show("系统菜单调用失败!/r/n "+"错误信息如下:"+ex.ToString() , "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}