DevExpress DateEdit 컨크롤의 DisplayFormat과 Mask 설정


C# 윈폼에서 화면에 날짜 데이터를 입력 받거나 화면에 표시할 때 DateTimePicker 컨트롤을 많이 사용하게 됩니다.
DateTimePicker 속성의 Format에서 ‘Long’을 지정해서 요일까지 표시하거나, ‘Short’를 지정해서 날짜만 표시해서 사용하는 것이 일반적입니다.

이번 글에서 소개할 내용은 Visual Studio 표준 도구인 DateTimePicker에 대한 설명은 아니고, DevExpress의 WinForm 용으로 제공하는 XtraEditors의 DateEdit 컨트롤의 FormatString과 EditMask 속성 설정 및 활용 방법에 대한 설명입니다.

DateEdit의 디폴트 Properties Format 설정 화면

▼ 아래 화면은 DevExpress.XtraEditors.DateEdit 도구를 화면에 추가하고 Properties의 DisplayFormat과 EditFormat 그리고 Mask의 EditMask 설정 부분입니다.

DateEdit의 디폴트 FormatStringEditMask는 ‘d‘ 입니다.

  • 속성이 ‘d’인 경우 ‘2023-10-26 목요일’ 이런 식으로 표시됩니다.
DevExpress DateEdit 컨크롤의 DisplayFormat과 Mask 설정 1

DateEdit의 Properties Format의 설정을 변경한 후의 화면

▼ 아래 화면은 DisplayFormatEditFormatFormatString을 ‘yyyy-MM-dd‘로 변경한 화면입니다.

  • DateEdit가 화면에 표시될 때는 ‘2023-10-26’ 이런 식으로 날짜만 표시됩니다.
DevExpress DateEdit 컨크롤의 DisplayFormat과 Mask 설정 2

DateEdit FormatString을 변경 전후의 화면 표시 비교

▼ 아래 화면에서 보는 것과 같이 FormatString을 “yyyy-MM-dd”로 했을 때와 “d”로 했을 때 차이를 확인할 수 있습니다.

DevExpress DateEdit 컨크롤의 DisplayFormat과 Mask 설정 3
  • FormatString의 속성 값을 “yyyy-MM-dd“로 했을 경우 Text에 ‘년-월-일‘ 날짜만 표시됩니다.
  • FormatString의 속성 값을 디폴트인 “d“로 했을 경우 Text에 ‘년-월-일 요일‘까지 표시됩니다.

DateEdit의 Mask 속성에서 EditMask 속성 값을 변경해서 날짜 입력을 효과적으로 하는 방법

▶ DateEdit의 FormatString과 EditMask가 디폴트 상태(“d”)에서 DateEdit에 날짜를 입력할 때 년,월,일 사이에 있는 하이픈(-)을 매번 직접 입력해 주어야 합니다.
년을 입력하고 하이픈을 입력해야 커서가 월로 이동하고, 월을 입력하고 하이픈을 입력해야 커서가 일로 이동합니다.
하이픈을 입력하지 않으면 그 자리에서 계속 입력이 이루어지게 됩니다. 아니면 마우스로 년, 월, 일을 직접 선택해 주어야 하는 불편함이 있습니다.

▶ 날짜를 입력할 때 년,월,일 숫자만 연속해서 8자리 입력하면 자동으로 년의 4자리, 월의 2자리, 일의 2자리로 입력 되도록 하는 것이 사용자 입장에서 입력이 편해집니다.

DevExpress DateEdit 컨크롤의 DisplayFormat과 Mask 설정 4
  • 두 번째 단락의 화면과 같이 MaskType 속성을 RegEx로 하고, EditMask 속성을 \d{4}-\d{2}-\d{2}로 지정하면 중간에 하이픈(-)이 자동으로 삽입되고 숫자만 연속으로 입력하면 되므로 입력할 때 훨씬 효율적 입니다.


이상으로 C# WinForm에서 DevExpress DateEdit 컨크롤의 DisplayFormat과 Mask 설정 방법 및 효율적인 사용 방법에 대해 알아보았습니다. 표준 DateTimePicker 보다 다양한 속성 값을 설정해서 사용할 수 있는 DateEdit를 사용해서 좀 더 편리하게 날짜를 입력하거나 표시하도록 개발해 보시기 바랍니다.





이 글이 도움이 되었기를 바랍니다. ^-^


답글 남기기