就是比如我应用程序中主窗体是frmMain是一个MDI父多窗体(IsMdiContainer=true),然后我点击frmMain上一个按钮,则弹出了一个它的子窗体searchFrm窗体,这个窗体是在frmMain父窗体中显示,没错!但问题在这里,我单击searchFrm窗体上的一个按钮,弹出了一个infoFrm窗体,这个窗体不会在frmMain父窗体里显示,他显示在父窗体外,如果要显示在frmMain父窗体里,应如何做呢,大家帮帮忙好吗?谢谢

解决方案 »

  1.   

    你设置一下searchFrm的一个属性Child什么的我记不住了!msdn上有!
      

  2.   

    把infoFrm.Parent设为主窗体frmMain。
      

  3.   

    把infoFrm.Parent设为主窗体frmMain。这样写,没反应呀,我试了
      

  4.   


    用Parent属性,报"不能将顶级控件添加到一个控件上"的错误呀
      

  5.   


    infoFrm.MdiParent=this.ParentForm;
      

  6.   

    /// <summary>
    /// 判断MDI子窗体是否存在,为防止子窗体被多次实例
    /// </summary>
    /// <param name="strFormName">窗体名</param>
    /// <returns>返回真假</returns>
    private bool ExistChildForm(string strFormName)
    {
    foreach(Form formChild in this.MdiChildren)
    {
    if (formChild.Name.ToString() == strFormName)
    {
    formChild.BringToFront();
    return true;
    }
    }
    return false;
    }上面是防止子窗体被多次实例化 private void FrmMain_Load(object sender, System.EventArgs e)
    {
    //把窗体设置为MDI的子窗体
    if(ExistChildForm("FrmLogin"))
    {
    return;
    }
    FrmLogin frmLogin = new FrmLogin();
    frmLogin.MdiParent = this;
    frmLogin.Show();
    }