Programming/c# & winform2021. 7. 12. 10:52

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]

'Programming > c# & winform' 카테고리의 다른 글

winform MDI 시도!  (0) 2021.07.12
winform IsMdiContainer  (0) 2021.07.12
winform 자동으로 UI 늘리기  (0) 2021.07.08
winform MDI  (0) 2021.07.08
winform 첨자(superscript/subscript)  (0) 2021.07.07
Posted by 구차니