当前位置: 代码迷 >> C# >> WINFORM 子窗体调用父窗体解决方案
  详细解决方案

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

热度:89   发布时间:2016-05-05 04:16:55.0
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少打了
  相关解决方案