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

2025. 3. 24. 13:30·프로그래밍/C#

[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.Run과 await로 UI 멈춤 없이 처리

📌 마무리

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

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

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

 

 

반응형
저작자표시 비영리 (새창열림)

'프로그래밍 > C#' 카테고리의 다른 글

NuGet 패키지 추천 – C# 개발 생산성 극대화하는 라이브러리 7선  (1) 2025.03.31
[C#] Quartz.NET 스케줄링 작업 자동화 – 기본 사용법부터 실무 적용까지  (0) 2025.03.24
[C#] Devexpress GridControl DataSource 지연 로딩으로 속도 최적화하기  (0) 2025.03.24
[C#] DevExpress WinForms GridView 속도 개선 팁 – 렌더링 최적화 & 클릭 지연 해결  (0) 2025.03.24
[C#] Singleton, Scoped, Transient 차이점 – DI Container 생명주기 완전 정리  (0) 2025.03.24
'프로그래밍/C#' 카테고리의 다른 글
  • NuGet 패키지 추천 – C# 개발 생산성 극대화하는 라이브러리 7선
  • [C#] Quartz.NET 스케줄링 작업 자동화 – 기본 사용법부터 실무 적용까지
  • [C#] Devexpress GridControl DataSource 지연 로딩으로 속도 최적화하기
  • [C#] DevExpress WinForms GridView 속도 개선 팁 – 렌더링 최적화 & 클릭 지연 해결
큐레이트
큐레이트
저의 일상을 기록하는 블로그입니다.
  • 큐레이트
    큐레이트의 기록
    큐레이트
  • 전체
    오늘
    어제
    • 분류 전체보기 (193) N
      • 국내여행 (37)
        • 애견여행 (33)
        • 맛집여행 (2)
      • 프로그래밍 (85) N
        • C# (24)
        • Python (24)
        • Flutter (5)
        • .NET (4)
        • ASP (7)
        • Next.js (3) N
        • Html (5)
        • Tomcat (2)
        • typescript (3)
        • etc (8)
      • 일상생활 (71)
        • 다이어트일지 (70)
        • 기타 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 복이랑스마트스토어
    • 복이랑블로그
  • 공지사항

    • 블로그 소개
  • 인기 글

  • 태그

    제주도애견동반여행
    다이어트
    HTML
    식단
    FastAPI
    티스토리챌린지
    애견여행
    운동일지
    DevExpress
    자동매매
    식단관리
    파이썬
    다이어트 일지
    iis
    pt
    일상생활
    자동화
    다이어트일지
    애견동반여행
    제주도
    국내여행
    애견동반
    오운완
    웹개발
    Flutter
    C#
    헬스
    체중기록
    오블완
    Python
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
큐레이트
[DevExpress] SplashScreenManager로 로딩 화면 만들기 – GridView 데이터 바인딩 UX 개선
상단으로

티스토리툴바