TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
Yves Gilson
NA
5
4.5k
SplashScreen issue, main form goes Backward when Splashscreen disposes
Oct 20 2011 10:08 AM
Hi,
I am facing a strange behavior that I cannot understand
As my application loads a lot of dll before starting, I wanted to show a splashscreen when loading.
The splashscreen forms disposes when the main form is fully loaded, and when it disposes, the main form goes behind the explorer that run the application.
I made a simplified code here, 2 forms :
Main
and
Splash
The application creates a thread that displays the splashscreen, waits 2 sec, and runs the Main form.
The splashscreen has a timer of 5 sec, when it elapsed, it closes itself.
The result is, when I start the application from the VStudio environment.. it runs properly, when it runs from explorer or something else (like totalcmd for my personal use) the application shows the splashscreen (Topmost = true) for 2 seconds, then appears just behind it the main form. after 3 seconds the splashscreen closes and the main form disappears, because it goes behind the explorer that run it.
you can find the full test solution attached.
what am i doing wrong ?
yves
Programs.cs
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Thread splashThread = new Thread(new ThreadStart(ShowSplashScreen));
splashThread.Start();
Thread.Sleep(2000);
Application.Run(new Main());
}
static void ShowSplashScreen()
{
Application.Run(new Splash());
}
}
Splash.cs
public partial class Splash : Form
{
public Splash()
{
InitializeComponent();
}
private void timer1_Tick(object sender, EventArgs e)
{
Close();
}
}
Main.cs
public partial class Main : Form
{
public Main()
{
InitializeComponent();
}
}
Attachment:
splashscreentest.zip
Reply
Answers (
7
)
Installing C# windows application
Logain failed for user hp-pc\hp