프로그래밍/C#

[DevExpress] SplashScreenManager로 로딩 화면 만들기 – GridView 데이터 바인딩 UX 개선

큐레이트 2025. 3. 24. 13:30

[DevExpress] SplashScreenManager로 로딩 화면 만들기 – GridView 데이터 바인딩 UX 개선

대용량 데이터를 로딩할 때 화면이 멈추거나, 사용자에게 아무런 반응이 없으면 UX가 매우 떨어집니다. 이럴 때는 DevExpress에서 제공하는 SplashScreenManager를 사용하여 로딩 화면을 구성하면 좋습니다.

이 글에서는 GridView에 데이터를 지연 로딩하면서 SplashScreen을 띄우는 실제 코드 예제를 정리해보겠습니다.


✅ 1. Splash 화면이란?

DevExpress의 SplashScreenManager는 로딩 중일 때 ProgressBar, 텍스트 등을 보여주는 비동기 UI 컴포넌트입니다.
단순한 "잠시 기다려 주세요" 메시지부터, 동적인 애니메이션 로딩 화면까지 만들 수 있습니다.


✅ 2. 설치 전 준비

  • DevExpress WinForms 라이브러리 설치되어 있어야 함
  • 프로젝트에 SplashScreen Form 추가 (DevExpress 메뉴 → "Add New Item" → "SplashScreen")

✅ 3. GridControl + SplashScreen 연동 예제


private async void MainForm_Load(object sender, EventArgs e)
{
    // 1. SplashScreen 표시
    SplashScreenManager.ShowForm(this, typeof(MyWaitForm), true, true, false);

    try
    {
        // 2. 백그라운드에서 데이터 로딩
        var data = await Task.Run(() => GetDataFromDatabase());

        // 3. Grid에 바인딩 (렌더링 최적화)
        gridView.BeginUpdate();
        gridControl.DataSource = data;
        gridView.EndUpdate();
    }
    finally
    {
        // 4. SplashScreen 닫기
        SplashScreenManager.CloseForm();
    }
}

주의: ShowForm()은 UI 스레드에서 호출해야 하고, Task.Run은 백그라운드 스레드에서 데이터 로딩을 담당합니다.


✅ 4. 커스텀 Splash 화면 만들기

기본 Splash 화면 외에도 커스텀 화면을 디자인할 수 있습니다.

  1. Solution Explorer → Add → New Item → DevExpress SplashScreen
  2. ProgressBar, Label, PictureBox 등을 자유롭게 배치
  3. MyWaitForm.cs가 생성됨

Splash 화면 클래스명은 예제처럼 MyWaitForm으로 설정해 주세요.
이 폼은 ShowForm()에서 사용됩니다.


🧠 팁 – 비동기 로딩 + UX 둘 다 잡기

  • 폼은 먼저 표시되고, 데이터는 비동기로 로딩
  • 로딩 중이라는 것을 SplashScreen으로 시각적으로 안내
  • BeginUpdate / EndUpdate로 렌더링 최적화
  • Task.Runawait로 UI 멈춤 없이 처리

📌 마무리

사용자 경험을 고려한 로딩 화면은 작은 차이지만 프로그램 완성도에 큰 차이를 만듭니다.
DevExpress의 SplashScreenManager는 이를 쉽고 깔끔하게 구현할 수 있는 좋은 도구입니다.

실무에서 GridView나 TreeList 등에 대용량 데이터를 처리하신다면 꼭 Splash 적용을 검토해보세요!

도움이 되셨다면 공감 / 댓글 부탁드립니다 😊

 

 

반응형