C#弹出窗体的弊端,请高手求解!
举例子就是:我想点击一个button调出另一个窗体,代码:Form1form=newForm1();form.show();这个代码有个弊端,就是当窗体已经出现的情况下,...
举例子就是:
我想点击一个button调出另一个窗体,代码:
Form1 form=new Form1();
form.show();
这个代码有个弊端,就是当窗体已经出现的情况下,我再多次点击button会出现多个窗体。在什么条件下调用比较好呢?我就想如果窗体已经被调用了,当我再次点击button是无效的。就高手指导! 展开
我想点击一个button调出另一个窗体,代码:
Form1 form=new Form1();
form.show();
这个代码有个弊端,就是当窗体已经出现的情况下,我再多次点击button会出现多个窗体。在什么条件下调用比较好呢?我就想如果窗体已经被调用了,当我再次点击button是无效的。就高手指导! 展开
展开全部
你在调用show函数之前,首先判断下,form是不是已经创建了。。
下面的代码是我以前写的一个代码的,是先进行判断,然后再进行创建的。。
if (form== null || form.IsDisposed == true)
{
form= new ProductAdd(this);
form.Show();
}
form.BringToFront();
下面的代码是我以前写的一个代码的,是先进行判断,然后再进行创建的。。
if (form== null || form.IsDisposed == true)
{
form= new ProductAdd(this);
form.Show();
}
form.BringToFront();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Form2 f2 = null;
private void button2_Click(object sender, EventArgs e)
{
if (f2 == null || f2.IsDisposed == true)
{
f2 = new Form2();
f2.Show();
}
else
{
f2.Activate();
}
}
Form2 f2 = null;,创建一个Form2的对象。先判断Form2的实例是不是创建,是就激活它。没创建就建一个。
private void button2_Click(object sender, EventArgs e)
{
if (f2 == null || f2.IsDisposed == true)
{
f2 = new Form2();
f2.Show();
}
else
{
f2.Activate();
}
}
Form2 f2 = null;,创建一个Form2的对象。先判断Form2的实例是不是创建,是就激活它。没创建就建一个。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
简单的把Form1的实例做成静态的(static),这样每次都只返回此实例。
标准的用单例模式(Singleton),Form1的构造函数里判断,如果已经有一个Form1的实例,则返回此实例。
标准的用单例模式(Singleton),Form1的构造函数里判断,如果已经有一个Form1的实例,则返回此实例。
追问
可以把代码写出来吗?我写静态类继承Form好像就不允许。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Form.ShowDialog () 这个函数,你可以尝试一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询