3

In my application it takes some time to loan my initial screen(1-2 mins). Since it has so many controls to be filled by Database.

So I need to have a splash screen, it will load(probably with a progress bar) and stays while main form loads. Means in background I need to load main form (better with out showing)

Only main window finishes loading, it notifies to splash, the splash will go off and main will be visible.

I tried to achieve above with several way but no success.

Any one can help me ?

Buddhi Dananjaya
  • 643
  • 2
  • 12
  • 32

4 Answers4

3

look at this Splash screen

and this Splash screen class

Sergey K
  • 4,071
  • 2
  • 23
  • 34
1
FormSplash splash = new FormSplash();

this.BeginInvoke(
    new MethodInvoker(
        () =>
        {
            splash.Show();
        }
    )
);

// main form code here

// at end of loading code
splash.Close();

The above code belongs in Form_Load of the main form.

Nahydrin
  • 13,197
  • 12
  • 59
  • 101
0

There are a couple of good approaches discussed at Show a splash screen at once (in fact to me this and the other question appear to be duplicates).

Community
  • 1
  • 1
Hugh W
  • 716
  • 2
  • 10
  • 33
0

The best way and using the API is

  SplashScreen splash = new SplashScreen("splashscreen.jpg");
  splash.Show(false);
  splash.Close(TimeSpan.FromMilliseconds(2));
  InitializeComponent();
Carlo V. Dango
  • 13,322
  • 16
  • 71
  • 114