就是比如我应用程序中主窗体是frmMain是一个MDI父多窗体(IsMdiContainer=true),然后我点击frmMain上一个按钮,则弹出了一个它的子窗体searchFrm窗体,这个窗体是在frmMain父窗体中显示,没错!但问题在这里,我单击searchFrm窗体上的一个按钮,弹出了一个infoFrm窗体,这个窗体不会在frmMain父窗体里显示,他显示在父窗体外,如果要显示在frmMain父窗体里,应如何做呢,大家帮帮忙好吗?谢谢
就是比如我应用程序中主窗体是frmMain是一个MDI父多窗体(IsMdiContainer=true),然后我点击frmMain上一个按钮,则弹出了一个它的子窗体searchFrm窗体,这个窗体是在frmMain父窗体中显示,没错!但问题在这里,我单击searchFrm窗体上的一个按钮,弹出了一个infoFrm窗体,这个窗体不会在frmMain父窗体里显示,他显示在父窗体外,如果要显示在frmMain父窗体里,应如何做呢,大家帮帮忙好吗?谢谢
用Parent属性,报"不能将顶级控件添加到一个控件上"的错误呀
infoFrm.MdiParent=this.ParentForm;
/// 判断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();
}