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