테스트에 사용된 데이터
DataGridView에 표시되는 데이터들을 알아보기 쉽게 포맷을 설정해보자.
숫자의 경우는 자리수에 맞춰 콤마(,)를 표시해주고,
날짜는 'yyyy년 MM월 dd일' 형태로 변경한다.
데이터 생성
DataTable로 데이터를 생성한다
DataTable dt =new DataTable();
dt.Columns.Add("Item");
dt.Columns.Add("Stock");
dt.Columns.Add("Date");
dt.Rows.Add("연필", "3500", "20200501");
dt.Rows.Add("지우개", "2000", "20210301");
dt.Rows.Add("GTX3090", "200", "20210808");
dataGridView1.DataSource=dt;
dataGridView1.Columns["Item"].HeaderText = "품목";
dataGridView1.Columns["Stock"].HeaderText = "재고";
dataGridView1.Columns["Date"].HeaderText = "날짜";
데이터 포맷 설정
dataGridView의 CellFormatting 이벤트를 사용한다.
숫자형
숫자정보는 아래 코드를 참고한다.
string num = e.Value.ToString();
int intNum;
if (Int32.TryParse(num, out intNum)) //데이터를 int로 변환시도
{
e.DisplayText = string.Format("{0:#,###}", intNum);
}
else
{
e.Value = num;
}
날짜형
날짜정보는 아래 코드를 참고한다.
string strDate = e.Value.ToString();
DateTime dateTime;
try
{
dateTime = DateTime.ParseExact(strDate, "yyyyMMdd", null);
e.DisplayText = dateTime.ToString("yyyy년 MM월 dd일");
}
catch
{
e.Value = strDate;
}
이벤트 작성
위 코드를 이벤트에 작성 하여 각 컬럼별 데이터 포맷(형식)을 변경 할 수 있다.
Switch문을 이용해 두가지를 동시에 적용한다.(If문을 사용해도된다.)
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.RowIndex != this.dataGridView1.NewRowIndex)
{
switch (e.ColumnIndex)
{
case 1:
string num = e.Value.ToString();
int intNum;
if (Int32.TryParse(num, out intNum))
{
e.Value = string.Format("{0:#,###}", intNum);
}
else
{
e.Value = num;
}
break;
case 2:
string strDate = e.Value.ToString();
DateTime dateTime;
try
{
dateTime = DateTime.ParseExact(strDate, "yyyyMMdd", null);
e.Value = dateTime.ToString("yyyy년 MM월 dd일");
}
catch
{
e.Value = strDate;
}
break;
}
}
}
끝.
'C# > winform' 카테고리의 다른 글
[C#][WinForm][Setup Project]설치된 프로그램 업데이트하기. (0) | 2021.07.19 |
---|---|
[C#][winform][dev]XtraDialog 를 이용하여 간단한 입력창 만들기 (0) | 2021.07.09 |
[C#][WinForm][Dev]GridControl 데이터 형식 설정(숫자 ',' 표시, 날짜 표시) (0) | 2021.06.30 |
[C#][WinForm][Dev]GridControl/GridView에 특정 행을 색으로 표시하기 (0) | 2021.06.29 |
[C#][WinForm][Dev]DataTable로 GridControl/GridView에 데이터 추가하기 (0) | 2021.06.28 |