在机房重构中,我们会遇到当点击一个按钮的时候就会出现一个窗体,当再次点击该按钮的时候,就会又出现一个窗体,这样是不允许也是没有必要的。那如何解决这个问题呢?在学过设计模式之后,肯定想到的就是单例模式了。要解决这个问题就是要用到单例模式。
private static ChangePassword change; private void 修改密码ToolStripMenuItem_Click(object sender, EventArgs e) { if (change==null||change.IsDisposed ) { change = new ChangePassword(); change.ShowDialog(); } }
有了这段代码就能够解决这些问题了。
但是还有一个问题是:
通过两张图的对比就能看出来,一张修改密码的页面在上面,另一张是在下面的,是因为在点击空白处的时候,修改密码就会跑到主页面的后面,那怎么解决这个问题呢?
在上的代码中有一句是:change.showDialog();这个方法就可以解决了,或者在最初设计的时候设置位父窗体和子窗体也可以。