본문 바로가기
C#/DevExpress

DevExpress / Winform WaitForm 만들기 입니다.

by HyunS_ 2019. 5. 24.
728x90

WaitForm 만들기 입니다.

 

예제화면

 

MainForm.cs 입니다.

using System;
using System.Threading;
using System.Windows.Forms;

using DevExpress.XtraSplashScreen;

namespace WindowsFormsApp2
{
    /// <summary>
    /// 메인폼 클래스 입니다.
    /// </summary>
    public partial class MainForm : Form
    {
        // Constructor (Public)

        #region MainForm()

        /// <summary>
        /// 메인폼 생성자 입니다.
        /// </summary>
        public MainForm()
        {
            InitializeComponent();

            this.splashButton.Click += splashButton_Click;
        }

        #endregion

        #region splashButton_Click(sender, e)

        /// <summary>
        /// 버튼 클릭시 동작합니다.
        /// </summary>
        /// <param name="sender">이벤트 발생자 입니다.</param>
        /// <param name="e">이벤트 인자 입니다.</param>
        private void splashButton_Click(object sender, EventArgs e)
        {
            SplashScreenManager.ShowForm(this, typeof(SplashWaitForm), true, true, true);

            for(int i = 0; i <= 100; i++)
            {
                SplashScreenManager.Default.SetWaitFormDescription(i.ToString() + "%");

                Thread.Sleep(25);
            }

            SplashScreenManager.CloseForm(false);
        }

        #endregion
    }
}

 

WaitForm.cs 입니다.

using System;

using DevExpress.XtraWaitForm;

namespace WindowsFormsApp2
{   
    /// <summary>
    /// 대기 폼 클래스 입니다.
    /// </summary>
    public partial class SplashWaitForm : WaitForm
    {
        #region SplashWaitForm() - 생성자 입니다.

        /// <summary>
        /// 생성자 입니다.
        /// </summary>
        public SplashWaitForm()
        {
            InitializeComponent();

            this.progressPanel1.AutoWidth  = false;
            this.progressPanel1.AutoHeight = false;
        }

        #endregion

        #region Overrides

        #region SetCaption(caption) - 제목을 설정합니다.

        /// <summary>
        /// 제목을 설정합니다.
        /// </summary>
        /// <param name="caption">제목 입니다.</param>
        public override void SetCaption(string caption)
        {
            base.SetCaption(caption);

            this.progressPanel1.Caption = caption;
        }

        #endregion

        #region SetDescription(description) - 내용을 설정합니다.

        /// <summary>
        /// 내용을 설정합니다.
        /// </summary>
        /// <param name="description">내용 입니다.</param>
        public override void SetDescription(string description)
        {
            base.SetDescription(description);

            this.progressPanel1.Description = description;
        }
        #endregion

        #region ProcessCommand(command, argument) - 명령을 처리합니다.

        /// <summary>
        /// 명령을 처리합니다.
        /// </summary>
        /// <param name="command">열거형 입니다.</param>
        /// <param name="argument">인자 입니다.</param>
        public override void ProcessCommand(Enum command, object argument)
        {
            base.ProcessCommand(command, argument);
        }

        #endregion

        #endregion

    }
}

 

728x90

댓글