1
How do I call one form and close a form at the same event. For example:
private void iniciar_Click(object sender, EventArgs e)
{
    Close();
    Frm1 newForm2 = new Frm1();
    newForm2.ShowDialog();  
}
						1
How do I call one form and close a form at the same event. For example:
private void iniciar_Click(object sender, EventArgs e)
{
    Close();
    Frm1 newForm2 = new Frm1();
    newForm2.ShowDialog();  
}
						6
This is done by placing the second form in a Thread:
public static void ThreadProc()
{
    Application.Run(new Frm1());
}
private void iniciar_Click(object sender, EventArgs e)
{
    System.Threading.Thread t = new System.Threading.Thread(new System.Threading.ThreadStart(ThreadProc));
    t.SetApartmentState(ApartmentState.STA);
    t.IsBackground = true;
    t.Start();
    this.Close();
}
							Before starting the new thread, it would not be better to ensure that the appartment state is STA (calling t.SetAppartmentState(ApartmentState.STA)? And define t.IsBackground = true so that the process doesn’t end when closing the previous main form? It’s been a long time since I’ve done things like this...
I made it as simple as possible, but you’re right. I’ll update the answer. Thanks!
2
Hello, I was having the same problem that our colleague @Andersonbp mentioned, there searching on the internet, I found a reply from @Juniortunjr that was easier to understand and solved my problem.
    private void btnIniciar_Click(object sender, EventArgs e)
    {
        this.Hide();
        Form f = new frm2();
        f.Closed += (s, args) => this.Close(); 
        f.Show();
    }
							0
It gave error a few times, but I calmly managed to execute:
private void btnIniciar_Click(object sender, EventArgs e)
    {
        this.Hide();
        Form f = new frm2();
        f.Closed += (s, args) => this.Close(); 
        f.Show();
    }
The copy and paste structure is as follows:
this. Hide(); [star_form] frm = new star_form, frm. Closed += (s, args) => this. Close(); frm. Show();
Whatever is between [] (square brackets), put the name of the form you want to call. For example:
    private void voltarToolStripMenuItem_Click(object sender, EventArgs e)
    {
        this.Hide();
        frm_Menu frm = new frm_Menu();
        frm.Closed += (s, args) => this.Close();
        frm.Show();
    }
With this we can go back to a previous window or to another, understood? Thank you very friend Danillo Victtor!
0
Use the line this. Hide(); to close your LOGIN screen, as in the example below.
private void iniciar_Click(object sender, EventArgs e)
{
Frm1 newForm2 = new Frm1();
this.Hide(); // use dessa maneira.
newForm2.ShowDialog();  
}
-1
try this on mine worked
Visible = false;
Browser other questions tagged c# .net winforms
You are not signed in. Login or sign up in order to post.
just to say q : I put Close(); on the last line and n came up empty... the first form remains open
– AndersonBP