C#编程如何实现由登陆窗体跳到主窗体的,要实现的代码?
即在C#编程时,由form1登陆到form2时,form1关闭(各位大人注意是关闭,非隐藏),当调试关闭form2时,整个程序结束。如何实现?...
即在C#编程时,由form1登陆到form2时,form1关闭(各位大人注意是关闭,非隐藏),当调试关闭form2时,整个程序结束。如何实现?
展开
12个回答
展开全部
form1的登陆按钮事件里写上
form2 m = new form2();
m.Show();
this.Hide();
再在form2窗体的属性里,单击一个闪电的符号,找到FormClosing,然后双击 FormClosing就行了,这个时候就会自动生成 FormClosing事件,在那里面写上你要执行的代码就搞定了,即
Application.Exit();
三楼的方法有个小问题,就是在没有登陆时直接关闭form1,form2还是会跳出来!
form2 m = new form2();
m.Show();
this.Hide();
再在form2窗体的属性里,单击一个闪电的符号,找到FormClosing,然后双击 FormClosing就行了,这个时候就会自动生成 FormClosing事件,在那里面写上你要执行的代码就搞定了,即
Application.Exit();
三楼的方法有个小问题,就是在没有登陆时直接关闭form1,form2还是会跳出来!
展开全部
在双击登陆按钮事件下写代码:
要跳转的窗体名 自定义对象名 = new 要跳转的窗体名(); //创建一个对象
自定义对象名.show(); //显示窗体
例:
XxFORM XF = new XxFORM(); //用窗体名创一个对象名
XF.Show(); //用创好的对象名显示窗体
要跳转的窗体名 自定义对象名 = new 要跳转的窗体名(); //创建一个对象
自定义对象名.show(); //显示窗体
例:
XxFORM XF = new XxFORM(); //用窗体名创一个对象名
XF.Show(); //用创好的对象名显示窗体
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不可能的。
你想啊。
你是在主函数启动的form1,然后你登录了,要关闭form1。
那应用程序就退出了。
因为你的入口是form1。
有一种方法可以实现。
那就是入时时先启动form2,然后在form2载入前,先启动form1。
登录之后,就可以顺利关闭form1了。
不懂百度hi上问我就行。
你想啊。
你是在主函数启动的form1,然后你登录了,要关闭form1。
那应用程序就退出了。
因为你的入口是form1。
有一种方法可以实现。
那就是入时时先启动form2,然后在form2载入前,先启动form1。
登录之后,就可以顺利关闭form1了。
不懂百度hi上问我就行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
调用show方法是没有用的,这个不能阻塞。你调用form1的ShowDialog方法把主线程阻塞就行了,这个方法会有一个返回值,你可以通过判断这个返回值来决定是否运行当前线程并打开form2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sorry,确实有点问题,那么的话,可以在program中加入一个自定义变量,
public static int formOrder = 1;这个变量表示窗口编号。
这样的话,比如你做安装程序,就可以在“下一个(窗体)”的按钮中写:
this.close();formOrder = 2;
在窗体关闭事件Form1_FormClosed中写:Program.formOrder = 0;
program中的代码就修改为:
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
public static int formOrder = 1;
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form form = new Form();
while (formOrder != 0)
{
switch (formOrder)
{
case 1:
form = new Form1();
break;
case 2:
form = new Form2();
break;
case 3:
form = new Form3();
break;
}
Application.Run(form);
}
}
}
public static int formOrder = 1;这个变量表示窗口编号。
这样的话,比如你做安装程序,就可以在“下一个(窗体)”的按钮中写:
this.close();formOrder = 2;
在窗体关闭事件Form1_FormClosed中写:Program.formOrder = 0;
program中的代码就修改为:
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
public static int formOrder = 1;
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form form = new Form();
while (formOrder != 0)
{
switch (formOrder)
{
case 1:
form = new Form1();
break;
case 2:
form = new Form2();
break;
case 3:
form = new Form3();
break;
}
Application.Run(form);
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询