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

  • 相关阅读:
    大道至简观后感
    冲刺第二天
    梦断代码阅读笔记 02
    冲刺第一天
    第十周学习进度
    个人冲刺第一阶段个人任务--界面
    软工第二周个人作业
    软件工程开课博客(自我介绍)
    梦断代码阅读笔记01
    第二周学习进度报告
  • 原文地址:https://www.cnblogs.com/AABBbaby/p/14450593.html
Copyright © 2020-2023  润新知