Skip to main content
.NET 8.0+

DevExpress v24.2 Update — Your Feedback Matters

Our What's New in v24.2 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.

Take the survey Not interested

Use a Custom Class to Show a Splash Form (WinForms)

  • 3 minutes to read

This topic demonstrates how create a custom splash form and use a custom class to show this form.

  1. Create a new Windows Form in your solution’s WinForms Application project, name the form SplashScreenForm, and design it to meet your requirements.

    Splash

    Note

    To use designer tools for DevExpress controls in .NET applications, install the DevExpress.Win.Design package from the local NuGet feed, or from a remote NuGet feed at https://nuget.devexpress.com.

  2. Add a new class to your WinForms Application Project and implement the ISplash interface.

    • Override the ISplash.Start method. Create a SplashScreenForm instance and call the form’s Show method.
    • In the ISplash.Stop method’s override, hide and close the SplashScreenForm.
    • The ISplash.IsStarted property indicates whether the SplashScreenForm is shown.
    • Override ISplash.SetDisplayText. You can call this method to change the SplashScreenForm‘s text.

    The code below demonstrates the MySplash class that implements the ISplash interface.

    using DevExpress.ExpressApp.Win;
    //...
    public class MySplash : ISplash {
        static private SplashScreenForm form;
        private static bool isStarted = false;
        public void Start() {
            isStarted = true;
            form = new SplashScreenForm();
            form.Show();
            System.Windows.Forms.Application.DoEvents();
        }
        public void Stop() {
            if(form != null) {
                form.Hide();
                form.Close();
                form = null;
            }
            isStarted = false;
        }
        public void SetDisplayText(string displayText) {
        }
        public bool IsStarted {
            get { return isStarted; }
        }
    }
    
  3. Access the WinApplication.cs (WinApplication.vb) file. Set the SplashScreen property to a new MySplash class instance.

    public MySolutionWindowsFormsApplication() {
       //...
       SplashScreen = new MySplash();
       // ...
    }
    
  4. You can display loading progress information. To do this, implement the the ISupportUpdateSplash interface in the MySplash class and add the UpdateInfo method to the SplashScreenForm class.

    public class MySplash : ISplash, ISupportUpdateSplash {
        // ...
        public void UpdateSplash(string caption, string description, params object[] additionalParams) {
            form.UpdateInfo(description);
        }
    }
    // ...
    public partial class SplashScreenForm : Form {
        // ...
        internal void UpdateInfo(string info) {
            label2.Text = info;
        }
    }
    
  5. Start the application to see the result.

    CustomSplashForm