c#의 기본 컨트롤인데 초기 데이터 생성해서 밀어 넣는게 짜증나는거 제외하면
기본 정렬기능부터 꽤나 쓸만해 보이는 녀석이다.
private void Form1_Load(object sender, EventArgs e) { //DataSet ds = new System.Data.DataSet(); DataTable table = new DataTable(); table.Columns.Add("ID", typeof(string)); table.Columns.Add("제목", typeof(string)); table.Columns.Add("구분일", typeof(string)); table.Columns.Add("생성일", typeof(string)); table.Columns.Add("수정일", typeof(string)); table.Rows.Add("ID 1", "제목 1번", "사용중", "2019/03/13", "2019/03.13"); table.Rows.Add("ID 1", "제목 1번", "사용중", "2019/03/13", "2019/03.13"); table.Rows.Add("ID 1", "제목 1번", "사용중", "2019/03/13", "2019/03.13"); table.Rows.Add("ID 1", "제목 1번", "사용중", "2019/03/13", "2019/03.13"); table.Rows.Add("ID 1", "제목 1번", "사용중", "2019/03/13", "2019/03.13"); table.Rows.Add("ID 1", "제목 1번", "사용중", "2019/03/13", "2019/03.13"); table.Rows.Add("ID 1", "제목 1번", "사용중", "2019/03/13", "2019/03.13"); table.Rows.Add("ID 1", "제목 1번", "사용중", "2019/03/13", "2019/03.13"); table.Rows.Add("ID 1", "제목 1번", "사용중", "2019/03/13", "2019/03.13"); table.Rows.Add("ID 1", "제목 1번", "사용중", "2019/03/13", "2019/03.13"); dataGridView1.DataSource = table; }
[링크 : https://kinghell.tistory.com/57 ]
DataSet 이라는 클래스는 DB에서 끌어올때 쓰기 유용한 듯.
그래도 둘다 dataGridView.DataSource에 넣으면 되니 어느것이든 상관없으려나?
[링크 : https://afsdzvcx123.tistory.com/entry/C-윈폼-DataGridView-데이터-조회-추가-삭제하는-방법 ]
+
셀 내의 폰트 크기 조절(전체), 셀 크기는 어떻게 조절하냐 ㅠㅠ
[링크 : https://docs.microsoft.com/ko-kr/dotnet/desktop/winforms/controls/how-to-set-font-and-color-styles-in-the-windows-forms-datagridview-control?view=netframeworkdesktop-4.8 ]
AutoSizeColumnMode / AutoSizeRowsMode를 AllCells로 하면 데이터 내의 모든 값을 보고 적당한 크기로 해주는 듯.
그런데 AllCells 하면 용량이 크면 너무 부하가 걸릴 것 같으니 DisplayedCells가 나을 것 같다.
Column/Rows 에 하나라도 None/Fit이 있으면 작동을 하지 않고
AllCells 혹은 DisplayedCells 등이 조합되서 설정되지 않으면 작동을 안하는 듯.
[링크 : https://docs.microsoft.com/ko-kr/dotnet/desktop/winforms/controls/sizing-options-in-the-windows-forms-datagridview-control?view=netframeworkdesktop-4.8 ]
컬럼 헤더에 숫자 넣기
foreach (DataGridViewRow row in dataGridView1.Rows) { row.HeaderCell.Value = "A"; row.Height = 19; } dataGridView1.Rows[0].HeaderCell.Value = "A"; dataGridView1.Rows[1].HeaderCell.Value = "B"; dataGridView1.Rows[2].HeaderCell.Value = "C"; dataGridView1.Rows[3].HeaderCell.Value = "D"; dataGridView1.Rows[4].HeaderCell.Value = "E";
[링크 : https://rocabilly.tistory.com/167 ]
컬럼/로우 헤더 스타일(폰트)
dataGridView1.DataSource = table; dataGridView1.DefaultCellStyle.Font = new Font("Tahoma", 30); dataGridView1.ColumnHeadersDefaultCellStyle.Font = new Font("Tahoma", 30); dataGridView1.RowHeadersDefaultCellStyle.Font = new Font("Tahoma", 30);
[링크 : https://docs.microsoft.com/ko-kr/dotnet/api/system.windows.forms.datagridview.columnheadersdefaultcellstyle?view=net-5.0 ]
아래의 항목을 설정해주어야 헤더의 폭이 자동으로 설정된다.
ColumnHeadersHeightSizeMode - AutoSize
RowHeadersWidthSizeMode - AutoSizeToAllHeaders
[링크 : https://docs.microsoft.com/ko-kr/dotnet/api/system.windows.forms.datagridview.columnheadersheightsizemode?view=net-5.0 ]
[링크 : https://docs.microsoft.com/ko-kr/dotnet/api/system.windows.forms.datagridview.rowheaderswidthsizemode?view=net-5.0 ]