C# form open and close problem?

  • Context: C# 
  • Thread starter Thread starter rollcast
  • Start date Start date
  • Tags Tags
    Form
Click For Summary
SUMMARY

The discussion addresses a coding issue in C# related to managing the visibility of two forms, Form1 and Form2. The user aims to display Form1 for 3 seconds before transitioning to Form2. The provided code incorrectly creates a new instance of Form1 in Form2, rather than closing the existing instance. A recommended solution is to modify Form1 to close itself after displaying Form2, effectively implementing a splash screen functionality.

PREREQUISITES
  • Understanding of C# Windows Forms programming
  • Familiarity with event handling in C#
  • Knowledge of threading and delays in C# applications
  • Basic concepts of form lifecycle in Windows Forms
NEXT STEPS
  • Implement a splash screen in C# Windows Forms applications
  • Explore the use of asynchronous programming in C# to manage form transitions
  • Learn about the Form.Close method and its implications in Windows Forms
  • Investigate best practices for managing multiple forms in C# applications
USEFUL FOR

C# developers, software engineers working with Windows Forms, and anyone interested in creating user-friendly application interfaces with splash screens.

rollcast
Messages
403
Reaction score
0
I'm trying to make a form, form1, appear when the program is started, stay on screen for 3 seconds and then close. Form2 should then open after this.

I tried various ways of doing it but I can't get it to work as I want it to do so. There are no bugs in the code so its purely a coding error.

Code for form1

Code:
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            waitandopen();
        }

        private void waitandopen()
        {
            System.Threading.Thread.Sleep(3000);

            Form form2 = new Form2();
            form2.Show();
        }
    }
}

Code for form 2

Code:
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        private void Form2_Load(object sender, EventArgs e)
        {
            closeform1();
        }

        private void closeform1()
        {
            Form form1 = new Form1();
            form1.Close();
        }
    }
}
 
Technology news on Phys.org
Well, for one, in Form2 you are creating a new instance of Form1 and then closing it, instead of the instance you already have. You can have Form1 close itself, or have Form2 open it.

But frankly, it looks like you are trying to build a splash screen - maybe that will give you a handle to search for more information.
 

Similar threads

  • · Replies 7 ·
Replies
7
Views
6K
  • · Replies 3 ·
Replies
3
Views
4K
  • · Replies 17 ·
Replies
17
Views
3K
Replies
12
Views
29K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
Replies
8
Views
2K
Replies
1
Views
2K
Replies
3
Views
3K