Back to Devexpress

SplashScreenManager.Default Property

windowsforms-devexpress-dot-xtrasplashscreen-dot-splashscreenmanager.md

latest10.7 KB
Original Source

SplashScreenManager.Default Property

Returns the default SplashScreenManager that allows you to interact with the currently displayed splash forms.

Namespace : DevExpress.XtraSplashScreen

Assembly : DevExpress.XtraEditors.v25.2.dll

NuGet Package : DevExpress.Win.Navigation

Declaration

csharp
public static SplashScreenManager Default { get; protected set; }
vb
Public Shared Property [Default] As SplashScreenManager

Property Value

TypeDescription
SplashScreenManager

A SplashScreenManager that is the default splash screen manager.

|

Remarks

The instance returned by the Default property allows you to interact with the currently opened splash form.

Only use the Default property in the following cases:

In all other cases, the Default property returns null. Do not invoke methods on the Default object to open splash forms.

To interact with any splash form, use the SplashScreenManager.SendCommand method. To set a Wait Form’s caption and description, use the SplashScreenManager.SetWaitFormCaption and SplashScreenManager.SetWaitFormDescription methods.

Example

In this example a custom Progress Bar Control is added to a Splash Screen. The example shows how to update this Progress Bar Control dynamically by sending commands from a Splash Screen Manager.Splash Screens are displayed by a Splash Screen Manager in a separate thread. Interaction with Splash Screens can be performed via the command mechanism. You send a command via the SplashScreenManager.SendCommand method and process this command by overriding the SplashScreen.ProcessCommand method. In the example, custom commands are sent to the Splash Screen to advance the progress of the Splash Screen's Progress Bar Control.

View Example

csharp
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraSplashScreen;

namespace SplashScreen_ProcessCommand {
    public partial class SplashScreen1 : SplashScreen {
        public SplashScreen1() {
            InitializeComponent();
        }

        #region Overrides

        public override void ProcessCommand(Enum cmd, object arg) {
            base.ProcessCommand(cmd, arg);
            SplashScreenCommand command = (SplashScreenCommand)cmd;
            if (command == SplashScreenCommand.SetProgress) {
                int pos = (int)arg;
                progressBarControl1.Position = pos;
            }
        }

        #endregion

        public enum SplashScreenCommand {
            SetProgress,
            Command2,
            Command3
        }
    }
}
csharp
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraSplashScreen;
using System.Threading;

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

        private void btnShowSplashScreen_Click(object sender, EventArgs e) {
            // Open a Splash Screen
            SplashScreenManager.ShowForm(this, typeof(SplashScreen1), true, true, false);

            // The splash screen will be opened in a separate thread. To interact with it, use the SendCommand method.
            for (int i = 1; i <= 100; i++) {
                SplashScreenManager.Default.SendCommand(SplashScreen1.SplashScreenCommand.SetProgress, i);
                //To process commands, override the SplashScreen.ProcessCommand method.
                Thread.Sleep(25);
            }

            // Close the Splash Screen.
            SplashScreenManager.CloseForm(false);
        }
    }
}
vb
Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Linq
Imports System.Text
Imports System.Windows.Forms
Imports DevExpress.XtraSplashScreen
Imports System.Threading

Namespace SplashScreen_ProcessCommand
    Partial Public Class Form1
        Inherits Form
        Public Sub New()
            InitializeComponent()
        End Sub

        Private Sub btnShowSplashScreen_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnShowSplashScreen.Click
            ' Open a Splash Screen
            SplashScreenManager.ShowForm(Me, GetType(SplashScreen1), True, True, False)

            ' The splash screen will be opened in a separate thread. To interact with it, use the SendCommand method.
            For i As Integer = 1 To 100
                SplashScreenManager.Default.SendCommand(SplashScreen1.SplashScreenCommand.SetProgress, i)
                'To process commands, override the SplashScreen.ProcessCommand method.
                Thread.Sleep(25)
            Next i

            ' Close the Splash Screen.
            SplashScreenManager.CloseForm(False)
        End Sub
    End Class
End Namespace
vb
Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Text
Imports System.Windows.Forms
Imports DevExpress.XtraSplashScreen

Namespace SplashScreen_ProcessCommand
    Partial Public Class SplashScreen1
        Inherits SplashScreen
        Public Sub New()
            InitializeComponent()
        End Sub

        #Region "Overrides"

        Public Overrides Sub ProcessCommand(ByVal cmd As System.Enum, ByVal arg As Object)
            MyBase.ProcessCommand(cmd, arg)
            Dim command As SplashScreenCommand = CType(cmd, SplashScreenCommand)
            If command = SplashScreenCommand.SetProgress Then
                Dim pos As Integer = CInt(Fix(arg))
                progressBarControl1.Position = pos
            End If
        End Sub

        #End Region

        Public Enum SplashScreenCommand
            SetProgress
            Command2
            Command3
        End Enum
    End Class
End Namespace

Example

A Wait Form is displayed by a Splash Screen Manager in a separate thread. To dynamically change labels within the Wait Form, while it is being displayed, use the SplashScreenManager.SetWaitFormCaption and SetWaitFormDescription methods.

View Example

csharp
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraSplashScreen;
using System.Threading;

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

        private void btnShowWaitForm_Click(object sender, EventArgs e) {
            //Open Wait Form
            SplashScreenManager.ShowForm(this, typeof(WaitForm1), true, true, false);

            //The Wait Form is opened in a separate thread. To change its Description, use the SetWaitFormDescription method.
            for (int i = 1; i <= 100; i++) {
                SplashScreenManager.Default.SetWaitFormDescription(i.ToString() + "%");
                Thread.Sleep(25);
            }

            //Close Wait Form
            SplashScreenManager.CloseForm(false);
        }
    }
}
vb
Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Linq
Imports System.Text
Imports System.Windows.Forms
Imports DevExpress.XtraSplashScreen
Imports System.Threading

Namespace WaitForm_SetDescription
    Partial Public Class Form1
        Inherits Form
        Public Sub New()
            InitializeComponent()
        End Sub

        Private Sub btnShowWaitForm_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnShowWaitForm.Click
            'Open Wait Form
            SplashScreenManager.ShowForm(Me, GetType(WaitForm1), True, True, False)

            'The Wait Form is opened in a separate thread. To change its Description, use the SetWaitFormDescription method.
            For i As Integer = 1 To 100
                SplashScreenManager.Default.SetWaitFormDescription(i.ToString() & "%")
                Thread.Sleep(25)
            Next i

            'Close Wait Form
            SplashScreenManager.CloseForm(False)
        End Sub
    End Class
End Namespace

See Also

SendCommand(Enum, Object)

SetWaitFormCaption(String)

SetWaitFormDescription(String)

SplashScreenManager Class

SplashScreenManager Members

DevExpress.XtraSplashScreen Namespace