翻譯|使用教程|編輯:龔雪|2021-02-25 09:58:39.757|閱讀 234 次
概述:在本文中,自定義進度欄控件被添加到啟動屏幕。 該示例顯示如何通過從啟動畫面管理器發送命令來動態更新此進度欄控件。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
在此示例中,自定義進度欄控件被添加到啟動屏幕。 該示例顯示如何通過從啟動畫面管理器發送命令來動態更新此進度欄控件。啟動畫面由啟動畫面管理器在單獨的線程中顯示,可以通過命令機制執行與啟動畫面的交互。 您通過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
DevExpress技術交流群3:700924826 歡迎一起進群討論
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網