文檔半島外圍網上直營>>DevExpress WinForm中文手冊>>如何動態更新添加到Splash表單的自定義控件
                如何動態更新添加到Splash表單的自定義控件
在這個例子中,一個自定義的進度條控件被添加到啟動界面,該示例展示了如何通過從啟動界面管理器發送命令來動態更新此進度條控件。啟動界面由啟動界面管理器在單獨的線程中顯示,與啟動界面的交互可以通過命令機制執行,您通過SplashScreenManager.SendCommand方法發送命令,并通過覆蓋SplashScreen.ProcessCommand方法來處理此命令。 在該示例中,自定義命令被發送到啟動界面來推進啟動界面的進度條控件的進度。
注意:完整的示例項目位于。
SplashScreen1.cs:
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
}
}
}
Form1.cs:
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);
}
}
}
Form1.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
SplashScreen1.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

 QQ交談
QQ交談 在線咨詢
在線咨詢 
                 
                
 渝公網安備
            50010702500608號
渝公網安備
            50010702500608號
             
            
 客服熱線
客服熱線