C# 在C中关闭多个窗体#
我的Windows窗体应用程序中总共有3个窗体(Form1、Form2和Form3) Form2是登录页面。当用户单击Form1中的登录按钮时,Form2必须打开,如果用户提供了准确的用户名和密码,则需要Form3打开和关闭Form1和Form2 如何用C语言编写这样的代码?我正在使用Microsoft Visual Studio 2012 到目前为止,我已经完成了以下步骤: 双击Form1以进入编码窗口并写入-C# 在C中关闭多个窗体#,c#,winforms,forms,C#,Winforms,Forms,我的Windows窗体应用程序中总共有3个窗体(Form1、Form2和Form3) Form2是登录页面。当用户单击Form1中的登录按钮时,Form2必须打开,如果用户提供了准确的用户名和密码,则需要Form3打开和关闭Form1和Form2 如何用C语言编写这样的代码?我正在使用Microsoft Visual Studio 2012 到目前为止,我已经完成了以下步骤: 双击Form1以进入编码窗口并写入- Form2 secondForm = new Form2(); 就在表单加载事件
Form2 secondForm = new Form2();
就在表单加载事件之外
&在按钮里面,我写道-
secondForm.Show();
因此,当我运行解决方案时,可以通过单击Form1中的按钮来打开Form2(非常好!)。但当用户在Form2中输入正确的用户名和密码组合以打开Form3时,我不知道如何关闭Form1和Form2
Form1 firstForm = new Form1();
firstForm.Close();
没有关闭表单
请指导我。您应该使用
Main()
方法添加一个新类。(或)您的项目中将有Program.cs
然后,从Main()
方法启动应用程序。您可以将“启动对象:”项目属性更改为“.Program”
方法应将Form1
和Form2
显示为对话框
如果DialogResult
为OK
,则通过Application.run()
方法运行Form3
DialogResult r;
r = (new Form1().ShowDialog());
if( r == DialogResult.OK )
Application.Run(new Form3());
无法关闭主窗体(用于启动消息循环的窗体),如果这样做将结束/关闭整个应用程序。但是,您可以做的是: 表格1代码
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
var f2 = new Form2();
var res = f2.ShowDialog();
if (res == DialogResult.OK)
{
var f3 = new Form3();
this.Visible = false;
f3.ShowDialog();
this.Close();
}
}
}
表格2代码:
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void buttonLogin_Click(object sender, EventArgs e)
{
// if username and password is ok set the dialog result to ok
this.DialogResult = DialogResult.OK;
this.Close();
}
}
它不会关闭表单,因为您正在创建一个新表单1,而您会关闭该新表单1,而不是关闭现有表单。是否有理由创建一个
表单3
,而不是返回表单1
?