C# 예제 : Splash Screen

C# Create Splash Screen

C# 예제 : Splash Screen
[ C#-Exercise ] - 윤대희

Splash Screen


0 Splash Screen이란 프로그램을 시작했을 때, 로딩 중에 표시되는 이미지를 의미합니다.

프로그램에 대한 소개로딩 진행률 등을 표시합니다. 또한 이 Splash Screen을 이용하여 로그인창, 로딩창, 시작폼 등에 응용할 수 있습니다.



항목 추가


1 프로젝트(P)새 항목 추가(W)를 눌러 Splash Screen이 될 Form을 추가합니다.



2 Windows Form을 선택 한 후 이름을 SplashForm.cs으로 변경하고 추가합니다.



Program.cs


3 솔루션 탐색기에서 Program.cs을 더블클릭하여 프로그램 주 진입점으로 이동합니다.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace test
{
    static class Program
    {
        /// <summary>
        /// 해당 응용 프로그램의 주 진입점입니다.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            SplashForm SplashForm = new SplashForm();
            Application.Run(SplashForm);

            Application.Run(new Form1());
        }
    }
}

위와 같이 코드를 수정합니다. SplashForm이 종료될 경우 Form1이 실행되게 됩니다.



SplashForm.cs


SplashForm에 progressBar를 추가합니다.


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;

namespace test
{
    public partial class SplashForm : Form
    {
        delegate void ProgressDelegate(int i);
        delegate void CloseDelegate();

        public SplashForm()
        {
            InitializeComponent();
        }

        private void SplashForm_Load(object sender, EventArgs e)
        {
            Thread loading = new Thread(Thread);
            loading.Start();
        }

        private void Step(int i)
        {
            progressBar1.Value = i;
        }

        private void FormClose()
        {
            this.Close();
        }

        private void Thread()
        {
            for(int i=0; i<=100; i++)
            {
                this.Invoke(new ProgressDelegate(Step), i);
                System.Threading.Thread.Sleep(50);
            }
            System.Threading.Thread.Sleep(1000);
            this.Invoke(new CloseDelegate(FormClose));
        }
    }
}

SplashForm이 로드될 때 loading으로 선언된 쓰레드가 실행됩니다.

사용자 정의 함수 Thread로 넘어가게 되며, Step이라는 사용자 정의 함수가 100회 실행됩니다.

잠시 대기 한 후 SplashForm을 종료합니다. Program.cs에서 정의 된 순서대로 폼이 순차적으로 실행됩니다.



Book Image

개정판이 출간됐습니다!

C#과 파이썬을 활용한 OpenCV 4 프로그래밍 (개정판)

컴퓨터 비전 기초 이론부터 머신러닝을 활용한 영상 처리 프로젝트까지

  • C#과 파이썬용 OpenCV의 데이터 형식과 행렬 및 배열 연산
  • 이미지/동영상/카메라를 활용한 입출력과 결과 저장
  • 전처리 과정과 정보를 탐색하기 위한 이미지 변형
  • 유의미한 정보를 검출하기 위한 이미지 변환
  • 이미지에서 정보를 검출 및 인식
  • 객체 검출을 포함한 모션 추적
  • K-means, KNN, SVM 등의 머신러닝 알고리즘 적용 방법
  • 카페(Caffe), 다크넷(Darknet), 텐서플로 모델을 활용한 딥러닝 모듈 적용 방법
  • Tesseract-OCR과 C# OpenCvSharp4를 활용한 프로젝트
  • 텐서플로와 Python OpenCV4를 활용한 프로젝트
  • 윤대희 저 | 위키북스

    [yes24 바로가기] [알라딘 바로가기] [교보문고 바로가기]

    후원하기


    ⤧  Previous post C# 예제 : Tab Menu
    C#-Exercise Category