c#窗体之间的转换问题form1和form2
展开全部
这个功能你最好知道两个知识点:
第一,窗体消失有很多方式,介绍两种最常见的:close(),hide().二者的区别在于,close会释放掉窗体的资源,而hide()不会
第二,要保持窗体的唯一性,可以用单例模式.
class
form1:form
{
static
form1
formbase;
//将类的初始化函数设为私有,这样在外部就不能直接初始化
piravte
form1()
{}
//单例模式,保证该实例只初始化一次.
public
static
form1
getinstation()
{
if(formbase==null||formbase.isdispose())
//当formbase为空,或者被释放掉时执行初始化
{
formbase=new
form1();
}
return
formbase;
}
}
class
form2:form
{
public
void
showform1hideform2()
{
form1
form1=form1.getinstation();
//调用唯一实例
form1.caption="第一次初始化";
form1.show();
form1.hide();
//隐藏掉.
form1=form1.getinstation();
//调用唯一实例
console.writeline(form1.caption);
//这里可以看到
caption="第一次初始化"
form1.show();
}
}
第一,窗体消失有很多方式,介绍两种最常见的:close(),hide().二者的区别在于,close会释放掉窗体的资源,而hide()不会
第二,要保持窗体的唯一性,可以用单例模式.
class
form1:form
{
static
form1
formbase;
//将类的初始化函数设为私有,这样在外部就不能直接初始化
piravte
form1()
{}
//单例模式,保证该实例只初始化一次.
public
static
form1
getinstation()
{
if(formbase==null||formbase.isdispose())
//当formbase为空,或者被释放掉时执行初始化
{
formbase=new
form1();
}
return
formbase;
}
}
class
form2:form
{
public
void
showform1hideform2()
{
form1
form1=form1.getinstation();
//调用唯一实例
form1.caption="第一次初始化";
form1.show();
form1.hide();
//隐藏掉.
form1=form1.getinstation();
//调用唯一实例
console.writeline(form1.caption);
//这里可以看到
caption="第一次初始化"
form1.show();
}
}
展开全部
一般不会这样弄,而是更改program.cs,大致如下(假定Form1为登陆窗口)
static
void
Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form1
login
=
new
Form1();
login.ShowDialog();
if
(login.DialogResult.Equals(DialogResult.OK))
//登陆成功才显示主窗口
{
Application.Run(new
Form2());
}
}
然后在Form1中,点击确定后如果密码验证通过并登录成功,那么就
this.DialogResult
=
DialogResult.OK;
然后再关form2就没问题。
static
void
Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form1
login
=
new
Form1();
login.ShowDialog();
if
(login.DialogResult.Equals(DialogResult.OK))
//登陆成功才显示主窗口
{
Application.Run(new
Form2());
}
}
然后在Form1中,点击确定后如果密码验证通过并登录成功,那么就
this.DialogResult
=
DialogResult.OK;
然后再关form2就没问题。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询