AI에 전적으로 의지하여 태스크 앱을 추가 개발하기: WBS, 간트 차트(Gantt Chart) 화면 브러시업 ②
요약
본 기사는 태스크 관리 앱 개발 과정 중 WBS(Work Breakdown Structure) 및 간트 차트 화면을 개선하는 내용을 다루고 있습니다. 구체적으로 월 헤더(Month Header)와 오늘 선(Today Line) 기능을 추가하고, 이를 구현하기 위해 필요한 컨트롤 초기화, 필드 정의, 그리고 `Paint` 이벤트 핸들러(`pnlMonthHeader_Paint`, `dgvWbs_CellPainting`) 및 스크롤 이벤트 처리(`dgvWbs_Scroll`) 등의 기술적 과정을 설명합니다. 이로써 WBS 기능의 실용화가 완료되었으며, 다음 단계로는 태스크 항목 자체를 개선할 예정입니다.
핵심 포인트
- WBS와 간트 차트 화면에 월 헤더(Month Header) 및 오늘 선(Today Line) 기능을 추가하여 시각적 완성도를 높였다.
- 월 헤더 구현을 위해 `InitializeComponent` 수정, 날짜 범위(`_minDate`, `_maxDate`) 필드 추가가 필요했다.
- 간트 차트의 정확한 표시를 위해 `pnlMonthHeader_Paint`와 `dgvWbs_CellPainting` 같은 커스텀 페인팅 이벤트 처리가 필수적이다.
- 스크롤 동작 시 헤더가 어긋나지 않도록 `dgvWbs_Scroll` 이벤트를 처리하여 안정성을 확보했다.
지난 회까지 태스크 관리 앱의 큰 틀을 작성하였으며, 현재 브러시업 (Brush-up) 중입니다.
이번에는 WBS, 간트 차트 (Gantt Chart) 화면을 다시 한번 브러시업 합니다.
WBS 화면의 간트 차트에 다음과 같은 요건을 추가하고 싶습니다.
・월 헤더 (Month Header)
・오늘 선 (Today Line)
추가 컨트롤
private Panel pnlMonthHeader;
InitializeComponent 수정
private void InitializeComponent()
...
필드 추가
private DateTime _minDate;
private DateTime _maxDate;
private const int DATE_COLUMN_WIDTH = 50;
...
중요한 부분입니다.
private void pnlMonthHeader_Paint(
object sender,
PaintEventArgs e)
...
상당히 중요합니다.
dgvWbs_CellPainting
private void dgvWbs_CellPainting(
object sender,
...
이것이 없으면 월 헤더가 어긋납니다.
private void dgvWbs_Scroll(
object sender,
ScrollEventArgs e)
...
실제로 구현하여 동작시켜 보면 다음과 같습니다.
WBS의 실용화도 일단 완료되었다고 생각합니다.
다음 회에는 태스크가 가지는 항목의 브러시업을 예정하고 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기