[C# 윈폼] DataGridView 컨트롤 Row 추가 및 삭제 하기
- C#/Windows Form
- 2020. 6. 22. 00:00
안녕하세요.
오늘은 C# 윈폼에서 DataGridView 컨트롤에 대해서 다뤄 보려고 합니다.
그 중에서도, 오늘은 DataGridView 컨트롤에서 Add, Delete 버튼 컨트롤을 추가하여 Add 버튼을 클릭할 시, Row 가 한 줄 추가되고, Delete 버튼을 클릭할 경우 현재 선택된 Row 가 Delete 되도록 한번 예제 프로그램을 작성해 보도록 하겠습니다.
먼저 빈 윈폼 프로젝트를 생성해 주시고, 아래와 같이 DataGridView 컨트롤과 Button 컨트롤을 배치해 주시기 바랍니다.
빈 윈폼 프로젝트 생성 및 컨트롤 배치
그럼 이제 Add 버튼을 클릭하면 Row 가 추가되고, 또 Delete 버튼을 클릭하면 현재 선택되어 있는 Row 를 삭제하도록 예제 코드를 작성해 보도록 할게요.
예제 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;
namespace GridViewControlTest { public partial class Form1 : Form { public int lastRowIdx = -1;
public Form1() { InitializeComponent();
//폼 Load 이벤트 선언 this.Load += LoadForm_Test;
//버튼 클릭 이벤트 선언 uiBtn_Add.Click += uiBtn_Add_Click; uiBtn_Delete.Click += uiBtn_Delete_Click; }
/// <summary> /// 폼 Load 이벤트 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void LoadForm_Test(object sender, EventArgs e) { SetDataGridImage(); }
/// <summary> /// DataGridView 값(Column, Row) 설정 /// </summary> public void SetDataGridImage() { uiGrid_Main.ColumnCount = 3; //컬럼 카운트 지정
//컬럼 이름 지정 GetColumnName();
//Row 데이터 지정 GetRowData();
//이미지 컬럼 추가 GetImageColumn(); }
/// <summary> /// 컬럼 이름 지정 /// </summary> public void GetColumnName() { //컬럼 이름 지정 uiGrid_Main.Columns[0].Name = "Name"; uiGrid_Main.Columns[1].Name = "Age"; uiGrid_Main.Columns[2].Name = "Score"; }
/// <summary> /// Row 데이터 지정 /// </summary> public void GetRowData() { uiGrid_Main.AllowUserToAddRows = false;
uiGrid_Main.Rows.Add("이름1", "23", "52"); uiGrid_Main.Rows.Add("이름2", "33", "62"); uiGrid_Main.Rows.Add("이름3", "43", "72"); uiGrid_Main.Rows.Add("이름4", "53", "82"); uiGrid_Main.Rows.Add("이름5", "23", "22"); uiGrid_Main.Rows.Add("이름6", "54", "42"); uiGrid_Main.Rows.Add("이름7", "26", "26"); uiGrid_Main.Rows.Add("이름8", "38", "88");
lastRowIdx = uiGrid_Main.Rows.Count; }
/// <summary> /// 이미지 컬럼 생성 /// </summary> public void GetImageColumn() { //이미지 컬럼 객체 생성 DataGridViewImageColumn img = new DataGridViewImageColumn();
//리소스에 저장되어 있는 Image 넣기 Image _image = Properties.Resources.image1; img.Image = _image;
//인덱스 3번 즉, 4번째 컬럼에 image 컬럼 추가 uiGrid_Main.Columns.Add(img); img.HeaderText = "ImageColumn"; img.Name = "img"; }
/// <summary> /// Row 추가 버튼 이벤트 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void uiBtn_Add_Click(object sender, EventArgs e) { lastRowIdx = uiGrid_Main.Rows.Count; uiGrid_Main.Rows.Add(); //로우 한줄 추가 }
/// <summary> /// 현재 선택된 Row 삭제 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void uiBtn_Delete_Click(object sender, EventArgs e) { for(int i = 0; i < uiGrid_Main.Rows.Count; i++) { //행 선택 여부 uiGrid_Main.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
if(uiGrid_Main.Rows[i].Selected == true) { //현재 선택된 인덱스에 해당된 Row 삭제 uiGrid_Main.Rows.Remove(uiGrid_Main.Rows[i]); } } } } }
|
실행 결과
위와 같이 Add, Delete 버튼이 알맞게 동작하는 것을 확인하실 수 있습니다.
감사합니다.^^
'C# > Windows Form' 카테고리의 다른 글
[C# 윈폼] TableLayoutPanel 에 컨트롤 추가하기 (0) | 2020.06.28 |
---|---|
[C# 윈폼] 윈폼으로 SlideForm 만들기 (5) | 2020.06.25 |
[C# 윈폼] C# 윈폼 DataGridView 컨트롤 Image Cell ClickEvent 발생시키기 (0) | 2020.06.21 |
[C# 윈폼] C# 윈폼 DataGridView 이미지 Cell 추가하기(이미지 넣기) (3) | 2020.06.20 |
[C# 윈폼] C# BackgroundWorker 쓰레드 사용 방법 (0) | 2020.06.17 |
이 글을 공유하기