C#winForm如何不让同一个窗体显示多次

例如我打开登录界面后点击注册,会弹出注册界面我在点击注册就会又出现一个注册窗体,如何在第二次点击的时候让第一次点击弹出的注册界面关闭,本人新手,求详细过程或大概代码... 例如我打开登录界面后点击注册,会弹出注册界面 我在点击注册就会又出现一个注册窗体,如何在第二次点击的时候让第一次点击弹出的注册界面关闭,本人新手,求详细过程或大概代码 展开
 我来答
jackyc23
推荐于2018-03-30 · TA获得超过523个赞
知道小有建树答主
回答量:376
采纳率:0%
帮助的人:393万
展开全部
提供几种方法供参考:

方法1:
private void button1_Click(object sender, EventArgs e)
{
frmReg form = new frmReg();
form.ShowDialog(); //直接用ShowDialog方法显示
}

方法2:
private void button2_Click(object sender, EventArgs e)
{
if (this.OwnedForms.Length > 0)
{
//如果存在已经打开的注册窗口,则先关闭打开的注册窗口
//小缺点:要确保OwnedForms[0]指的就是frmReg窗口
this.OwnedForms[0].Close();
}
frmReg form = new frmReg();
form.Show(this); //将本窗口作为注册窗口的拥有者传入,也可用下面2句代替
//form.Owner = this;
//form.Show();
}

方法3:
frmReg form = null; //声明一个全局变量
private void button3_Click(object sender, EventArgs e)
{
if (form == null)
form = new frmReg(); //如果没有已打开的注册窗口,则新开一个
form.TopMost = true; //让注册窗口显示在顶层
form.Show();
}

方法4:
为注册窗口实现单例模式,原理跟方法3类似,就是将判断null放入注册窗口里面,并且不让从外部直接new新窗口,当然还有些细节要注意的
百度网友22906822a
2010-07-30 · TA获得超过189个赞
知道小有建树答主
回答量:287
采纳率:0%
帮助的人:176万
展开全部
这个就是所谓的 单例模式 你可以上网搜索一下
在你的登录界面中 建立一个private static 的类类型变量
我这里用的是Danli 作为类的名的
记住一个私有的构成方法 还一个私有的静态的类类型变量
再加上一个公共的返回值是类类型的方法就可以啦
在这个方法里面判断类类型是否为空 如果空就创建一个
如果不是空 就直接返回
public partial class Danli : Form
{

private static Danli mod = null;

private Danli()
{
InitializeComponent();
}

public static Danli GetInstance()
{
if (mod == null)
{
mod = new Danli();
}
return mod;
}
}

在你要调用的页面 就不能使用new的方法创建对象了 因为是static的
Danli danli = Danli.GetInstance();
danli.Show();
这样 你试试看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lightringz
2010-07-30
知道答主
回答量:35
采纳率:0%
帮助的人:17.2万
展开全部
建议你
点击注册弹出窗体时加入代码this.Visible = false;隐藏登陆界面
注册窗口关闭时再把登陆界面显示出来 XXXX.Visible = true;
(XXXX为登陆界面窗口的代号)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友02a064f
2010-07-30 · TA获得超过233个赞
知道小有建树答主
回答量:228
采纳率:0%
帮助的人:156万
展开全部
用ShowDialog()弹出窗口,别用show()。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式