[c#] 문자열 리스트 출력하기 – ListBox, ListView, DataGridView 선택

예를 들어 조건을 만족하는 주식 종목들의 이름을 리스트의 형태로 출력하는 경우를 생각해 본다. 이름들을 한꺼번에 출력할 수 있고 가격 등이 변하여 조건을 만족하면 추가하여 출력할 수도 있다. 이들 가운데에 일부는 글꼴의 형태를 굵게 하거나 색을 바꿀 수 있으며 순서를 바꿀 수도 있다. 이런 기능들을 위해서는 어떤 비주얼 오브젝트를 쓰는 게 좋을까?

문자열을 리스트의 형태로 출력할 테니 우선 ListBox와 ListView를 떠올리기 쉽다. 하지만 DataGridView를 쓰는 게 제일 편하다. DataGridView는 그 이름만 봐서는 그리드 형태의 출력을 위한 거라 생각할 수 있지만 칼럼을 하나만 만들면 리스트와 같다. ListView에 칼럼들을 여럿 만들면 이건 그리드의 형태가 된다. 고로 리스트 형태냐 그리드 형태냐 여부는 중요한 게 아니다. 중요한 건 얼마나 쉽게 칼럼, 행, 셀 단위로 스타일을 적용할 수 있느냐 하는 거다.

ListBox > ListView > DataGridView의 순서대로 복잡하고 강력하다. 간단하게 문자열들만 출력하고 말 거면 ListBox가 좋다. 세부적으로 제어하려면 DataGridView가 좋지만 설정해야 할 것들이 많다. ListBox와 ListView로 예를 들어 특정 셀 글꼴의 색을 바꾸려면 이벤트를 이용해야 한다. 이벤트 안에서 제어할 대상을 특정하여 일일이 그려 줘야 한다. 하지만 DataGridView로는 그냥 직접적으로 대상을 제어하면 된다.