回 帖 发 新 帖 刷新版面

主题:究竟该如何可靠的弹出新窗体?VC#中怎么这么麻烦?


如何点击一个按钮弹出一个新的窗体?而且在原窗口中再次点击那个按钮,如果已经有窗体就显示,如果没有就new一个?

开始解决方法是用
Form2 f = new Form2();
f.Show();
可是这样可以回到原来的窗体上再次点击出现多个窗体,

改进了代码:
类中创建字段
private Form2 f = null;
按钮代码中写:
if (f == null) f = new Form2();
f.Show();
但是这样会报异常System.ObjectDisposedException
这样一个简单的问题怎么这么难解决?[em6]

回复列表 (共3个回复)

沙发

ShowDialog

板凳

if哪里有问题
如果已经show了,或者你给关了,你再show。。。

if(form==null||form.IsDisposed)
            {
                form=new Form2();
                form.Show();
            }
            else
                form.Focus();
这么写能满足,不过没什么意义吧?

3 楼

Form2的Closed事件中:
f = null;

我来回复

您尚未登录,请登录后再回复。点此登录或注册