日期:2014-05-19  浏览次数:20787 次

C# MDI窗体内子窗体的显示问题.
代码如下:
                      private   void   用户管理ToolStripMenuItem_Click(object   sender,   EventArgs   e)
                {
                    myspace.myclass   mysql=   new   myspace.myclass();
                    usergl   myfrom=new   usergl();                      
                            myfrom.MdiParent   =   this;
                            myfrom.Show();
       
                }

现在出现的问题事这样..每次点击菜单都会弹出一个窗口..要如何做才能屏蔽这个问题.实现..如果该窗体已经加载,则不再创建新的窗体.求助大虾帮忙.

------解决方案--------------------
usergl myfrom;
声明放在方法之外
每次new之前判断是否为null

usergl myfrom;
private void 用户管理ToolStripMenuItem_Click(object sender, EventArgs e)
{
myspace.myclass mysql= new myspace.myclass();
if(myfrom == null)
{
myfrom=new usergl();
myfrom.MdiParent = this;
myfrom.Show();
}

}
------解决方案--------------------
每次点击菜单都会弹出一个窗口是因为你每点击一次就会创建一个新的对象,usergl myfrom=new usergl();
//---------------------------------------------
//--c参考实现
usergl myfrom = null;
private void 用户管理ToolStripMenuItem_Click(object sender, EventArgs e)
{
myspace.myclass mysql= new myspace.myclass();
if(myform==null)
myfrom =new usergl();
myfrom.MdiParent = this;
myfrom.Show();
myform.focus();

}
同时在myfrom的closing事件里隐藏该窗体就可以了.