WINFORM 子窗体调用父窗体解决方案

WINFORM 子窗体调用父窗体
WINFORM 子窗体调用父窗体解决方案
右侧区域是嵌套的子窗体,点击左边按钮的时候可以切换不同的子窗体
但是如果是点子窗体的按钮切换就不管用了?为啥

子窗体代码按钮点击
FrmMain frmMain = new FrmMain();
            FrmView frmView = new FrmView();
            frmMain.ChangePanel(frmView);

父窗体函数
        public void ChangePanel(Form frm)
        {
            frm.FormBorderStyle = FormBorderStyle.None;
            frm.Dock = DockStyle.Fill;
            frm.TopLevel = false;
            this.pnlMain.Controls.Clear();
            this.pnlMain.Controls.Add(frm);
            frm.Show();
        }

------解决思路----------------------
Control p = this;
FrmMain frmMain=null;
do{
   p = p.Parent;
   if(p is FrmMain ){
           frmMain = (FrmMain)p;
           break;
   }
}
while(p!=null)
if(frmMain !=null){
FrmView frmView = new FrmView();
frmMain.ChangePanel(frmView);
}

while少打了