C# 当主窗体出现时,如何关闭登录窗体?

C# 当主窗体出现时,如何关闭登录窗体?,c#,forms,login,C#,Forms,Login,我创建了两个表单loginform和mainform登录表单是我的启动程序,它验证用户名和密码是否正确,然后它将打开主表单,但问题是在主表单打开后,登录表单仍然位于主表单的后面 在我的btnSubmit\u中,单击我的登录信息,我尝试了不同的命令this.Hide、this.Close、this.Disposed,也在加载时的mainform中,我也执行这些命令来关闭登录信息,但幸运的是它仍然存在,我无法移动或手动关闭它 loginform是我的启动程序 static class Program

我创建了两个表单loginform和mainform登录表单是我的启动程序,它验证用户名和密码是否正确,然后它将打开主表单,但问题是在主表单打开后,登录表单仍然位于主表单的后面

在我的btnSubmit\u中,单击我的登录信息,我尝试了不同的命令this.Hide、this.Close、this.Disposed,也在加载时的mainform中,我也执行这些命令来关闭登录信息,但幸运的是它仍然存在,我无法移动或手动关闭它

loginform是我的启动程序

static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        public static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new frmLog());
        }

请帮我解决这个问题。

一个简单的解决方案是将您的登录表单设置为variable,并使用登录结果设置公共属性,然后执行另一个应用程序。在应用程序下方的主表单上运行。在登录表单上运行。您可能需要在登录表单上调用close方法,或者设置dialogresult属性以关闭登录表单并移动到主表单。

一个简单的解决方案是将登录表单设置为variable,并使用登录结果设置公共属性,然后再执行另一个应用程序。在您的主表单上运行应用程序。在您的登录表单上运行。您必须在登录表单上调用close方法,或者设置dialogresult属性以关闭登录表单并移动到主表单。

如果要再次使用登录表单,则只应隐藏登录表单

mainform mf = new mainform();
mf.Tag = this;
mf.Show();
this.Hide();
并再次显示登录表单

var log = this.Tag as frmLog;
log.Show();

若你们想再次使用登录表单,那个么你们应该只隐藏登录表单

mainform mf = new mainform();
mf.Tag = this;
mf.Show();
this.Hide();
并再次显示登录表单

var log = this.Tag as frmLog;
log.Show();

只需在验证用户凭据后创建一个新对象并隐藏上一个对象,如下所示:

private void btnLogin_Click(object sender, EventArgs e)
{
    //after successfull validation 
    mainform objMainform = new mainform();
    objMainform.Show();
    this.Hide();
}

只需在验证用户凭据后创建一个新对象并隐藏上一个对象,如下所示:

private void btnLogin_Click(object sender, EventArgs e)
{
    //after successfull validation 
    mainform objMainform = new mainform();
    objMainform.Show();
    this.Hide();
}

我认为躲起来不适合做这种工作。。 试试这个

这是为PROGRAM.CS准备的

static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            FrmMain mainForm = new FrmMain();
            FrmUsername us = new FrmUsername();
            if (us.ShowDialog() != DialogResult.OK)
                return;
            Application.Run(mainForm);
        }
这是用户名表单中的enter按钮

private void btm_Enter_Click(object sender, EventArgs e)
        {
            SqlCommand cmd = new SqlCommand("select count(*) from Tbl_Username where Username='" + txt_Username.Text + "' and Password='" + txt_Password.Text + "'", _sqlcon);
            _sqlcon.Open();
            int count = 0;
            count = (int)cmd.ExecuteScalar();
            if (count > 0)
            {
                DialogResult = System.Windows.Forms.DialogResult.OK;
            }
            else
            {
                DialogResult = System.Windows.Forms.DialogResult.None;
                MessageBox.Show("UserName or password is wrong", "ENTER", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }

            _sqlcon.Close();
        }

我认为躲起来不适合做这种工作。。 试试这个

这是为PROGRAM.CS准备的

static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            FrmMain mainForm = new FrmMain();
            FrmUsername us = new FrmUsername();
            if (us.ShowDialog() != DialogResult.OK)
                return;
            Application.Run(mainForm);
        }
这是用户名表单中的enter按钮

private void btm_Enter_Click(object sender, EventArgs e)
        {
            SqlCommand cmd = new SqlCommand("select count(*) from Tbl_Username where Username='" + txt_Username.Text + "' and Password='" + txt_Password.Text + "'", _sqlcon);
            _sqlcon.Open();
            int count = 0;
            count = (int)cmd.ExecuteScalar();
            if (count > 0)
            {
                DialogResult = System.Windows.Forms.DialogResult.OK;
            }
            else
            {
                DialogResult = System.Windows.Forms.DialogResult.None;
                MessageBox.Show("UserName or password is wrong", "ENTER", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }

            _sqlcon.Close();
        }

frmlog是loginform很抱歉将其重命名,我只是不想让它更清楚。我使用的是C windows窗体vissual studio 2010 express edition。尝试回答:C打开一个新窗体并关闭另一个窗体。您可以在验证后共享显示主窗体的代码吗?您可以使用主窗体启动应用程序,然后立即使用以对话框形式登录。如果登录失败,您可以关闭主窗体。frmlog是loginform很抱歉重命名它,我只是不想让它更清楚。我使用的是C windows form vissual studio 2010 express edition。尝试回答:C打开一个新窗体并关闭另一个。您可以共享验证后显示主窗体的代码吗?您可以启动应用程序使用mainform,然后立即将loginform作为对话框。如果登录失败,您可以关闭主窗体。