• DevExpress WinForms帮助文档:表单控件


    点击获取DevExpress完整版下载

    DevExpress技术交流群3:700924826      欢迎一起进群讨论

    在此示例中,自定义进度栏控件被添加到启动屏幕。 该示例显示如何通过从启动画面管理器发送命令来动态更新此进度栏控件。启动画面由启动画面管理器在单独的线程中显示,可以通过命令机制执行与启动画面的交互。 您通过SplashScreenManager.SendCommand方法发送命令,并通过覆盖SplashScreen.ProcessCommand方法来处理此命令。 在该示例中,自定义命令被发送到启动画面,以推进启动画面的进度条控件的进度。

    注意:完整的示例项目位于https://github.com/DevExpress-Examples/how-to-interact-with-a-splash-screen-by-sending-commands-e3576

    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中文网,获取第一手最新产品资讯!

  • 相关阅读:
    Git 进阶学习
    My SQL 学习打卡 60天搞定mysql
    设计模式 学习笔记
    docker 从入门到精通
    java 异步线程下的顺序控制
    Maven 工程 如何添加 oracle 驱动 问题
    Hive 2.1.1 学习笔记
    Linux 下 MySQL-5.6.16 安装
    hadoop2.x HDFS HA linux环境搭建
    [LC] 1146. Snapshot Array
  • 原文地址:https://www.cnblogs.com/AABBbaby/p/14450593.html
Copyright © 2020-2023  润新知