0

我的 Windows 窗体应用程序中共有 3 个表单(Form1、Form2 和 Form3)。

Form2 是登录页面。当用户点击 Form1 中的登录按钮时,必须打开 Form2,如果用户提供准确的用户名和密码,则需要 Form3 来打开和关闭 Form1 和 Form2。

如何在 C# 中编写这样的代码?我正在使用 Microsoft Visual Studio 2012。

到目前为止,我已经完成了以下程序:

双击 Form1 进入编码窗口并写下-

Form2 secondForm = new Form2();

就在表单加载事件之外

&在按钮内,我写道-

secondForm.Show();

因此,当我运行解决方案时,通过单击 Form1 中的按钮打开 Form2(完美运行!)。但是当用户在Form2中输入正确的用户名和密码组合以打开Form3时,我不知道如何关闭Form1和Form2。

Form1 firstForm = new Form1();
firstForm.Close();

没有关闭表格。

请指导我。

4

2 回答 2

0

您应该添加一个带有Main()方法的新类。(或)您的项目中会有 Program.cs。

并且,从该Main()方法启动应用程序。您可以将项目的“启动对象:”属性更改为“<YourApplicationName>.Program”。

您的Main()方法应该显示Form1Form2对话框。

如果DialogResultOK然后运行Form3​​byApplication.Run()方法。

DialogResult r;
r = (new Form1().ShowDialog());
if( r == DialogResult.OK )
Application.Run(new Form3());
于 2013-10-13T16:53:24.187 回答
0

如果您这样做将结束/关闭整个应用程序,则无法关闭主窗体(用于启动消息循环的主窗体)。但是,您可以做的是:

Form1 代码

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();
        }
    }
于 2013-10-13T23:00:36.220 回答