-
내가 쓰려고 만든 C# 윈폼 템플릿(데이터 그리드뷰 셀 클릭,데이터 그리드 뷰 내부의 삭제 체크박스)C# 2020. 9. 15. 13:50
1. 별거 없다 데이터그리드뷰의 한 Row에 대하여 텍스트 박스 혹은 콤보박스에 갔다 붙인다. 각 컨트롤 중에 변경이 불가능하게 하고 싶은 항목들은 Enable이 False로.
콤보박스는 데이터바인딩이 되어있거나 셀안에 내용이 있으면 FindString을 통해서 인덱스를 찾아서 Selected인덱스를 맞춰준다.
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { EnableControl(); B_cboCOMP_NM.Enabled = false; B_cboPLANT_NM.Enabled = false; B_cboCUSTOMER_CODE.Enabled = false; B_txtPART_NM.Enabled = false; B_txtPART_NO.Enabled = false; MODE = "UPDATE"; UpdateCBO(); B_cboCOMP_NM.SelectedIndex = B_cboCOMP_NM.FindString(row.Cells[1].Value.ToString()); B_cboPLANT_NM.SelectedIndex = B_cboPLANT_NM.FindString(row.Cells[2].Value.ToString()); B_cboCUSTOMER_CODE.SelectedIndex = B_cboCUSTOMER_CODE.FindString(row.Cells[3].Value.ToString()); B_txtPART_NO.Text = row.Cells[4].Value.ToString(); B_txtPART_NM.Text = row.Cells[5].Value.ToString(); B_txtPRICE.Text = row.Cells[6].Value.ToString(); B_cboUNIT.SelectedIndex = B_cboUNIT.FindString(row.Cells[7].Value.ToString()); string[] temp = row.Cells[8].Value.ToString().Split('-'); B_dateORDER_DATE.Value= new DateTime(int.Parse(temp[0]), int.Parse(temp[1]), int.Parse(temp[2])); B_txtSAFTSR.Text = row.Cells[9].Value.ToString(); B_txtBUY_QTY.Text = row.Cells[10].Value.ToString(); B_txtLTIME.Text = row.Cells[11].Value.ToString(); B_txtORDER_QTY_MIN.Text = row.Cells[12].Value.ToString(); B_cboBUY_MANAGER.SelectedIndex = B_cboBUY_MANAGER.FindString(row.Cells[13].Value.ToString()); B_cboSTOCK_MANAGER.SelectedIndex = B_cboSTOCK_MANAGER.FindString(row.Cells[14].Value.ToString()); B_txtRMK.Text = row.Cells[15].Value.ToString(); } }
삭제 체크박스
위 셀클릭이벤트 내부에 넣어서 사용하자. 왜인지는 모르겠지만 Select가 끝난후 체크박스를 False로 초기화 해줘야 동작한다. 삭제할 때는 체크박스가 체크된 부분만 삭제되도록 한다.
if(e.RowIndex>-1&&e.ColumnIndex>-1) { DataGridViewRow row = dataGridView1.Rows[e.RowIndex]; if (e.ColumnIndex == 0) { if (row.Cells[0].Value.ToString() == "False") row.Cells[0].Value = true; else if (row.Cells[0].Value.ToString() == "True") row.Cells[0].Value = false; }
SELECT가 완료되고 난 후에 첫번째 Row가 존재하면 그 행을 갔다 붙인다든가 하는 인터페이스적인 항목은 알아서
'C#' 카테고리의 다른 글
내가 쓰려고 만든 C# 윈폼 템플릿 (데이터그리드뷰 셀 병합) (0) 2020.09.15 내가 쓰려고 만든 C# 윈폼 템플릿(기본키 확인 메서드) (0) 2020.09.15 내가 쓰려고 만든 C# 윈폼 템플릿(콤보박스 데이터 바인딩) (0) 2020.09.15 내가 쓰려고 만든 C# 윈폼 템플릿 (SELECT) (0) 2020.09.15 C# IComparable을 이용한 List정렬 (0) 2020.08.21