I have a windows application where my first windows form is Login. After successful login, it has to open "Home" form. I see "Home" form while debugging, but once the code enters into Dispose method in Home.Designer.cs, my application stops.
My Login page code looks like following:
private void loginbtn_Click(object sender, EventArgs e)
{
String username = "admin";
String password = "admin";
String @uname = Unametxtbox.Text;
String @pass = Passtextbox.Text;
if (@uname.Equals(username) && @pass.Equals(password))
{
MessageBox.Show("Login Successful");
Home home = new Home();
home.Show();
this.Close();
}
else
{
MessageBox.Show("Invalid Credentials!");
}
}
My Home.cs page looks like following:
public partial class Home : Form
{
public Home()
{
InitializeComponent();
}
}
And the Home.Designer.cs has following code:
partial class Home
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Home));
this.label1 = new System.Windows.Forms.Label();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.closebtn = new System.Windows.Forms.PictureBox();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.Storedbtn = new System.Windows.Forms.Button();
this.Soldbtn = new System.Windows.Forms.Button();
this.Transbtn = new System.Windows.Forms.Button();
this.Supbtn = new System.Windows.Forms.Button();
this.Empbtn = new System.Windows.Forms.Button();
this.Custbtn = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.closebtn)).BeginInit();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
}
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.PictureBox closebtn;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Button Storedbtn;
private System.Windows.Forms.Button Soldbtn;
private System.Windows.Forms.Button Transbtn;
private System.Windows.Forms.Button Supbtn;
private System.Windows.Forms.Button Empbtn;
private System.Windows.Forms.Button Custbtn;
}
If I comment this.Close(); in loginbtn_Click, I can see the Home windows form, but the Login Windows form doesn't get closed.
What I am missing here, Thanks in advance.
CodePudding user response:
Try using hide instead close.
Hide();
Home home = new Home();
home.ShowDialog();
Close();