강좌이긴 한데.. 처음부터 A-Z까지의 내용을 다루는 것이 아니라.. 제가 작성할 프로그램에 관련된 부분들만 우선적으로 공부하고 있어서.. 올리는 내용도 그렇게 될 것 같습니다.
새로운 프로젝트를 생성한 후. 아래 그림처럼 Form위에 DataGridView 1개, 라벨 2개, 텍스트박스 2개, 버튼 3개를 올리고 각각의 Name을 빨간색으로 적은 문자열로 하였습니다.
두개의 페이지가 존재하는데 Form1.vb는 코드를 작성하는 페이지이고 Form1.vb[디자인]은 폼의 UI를 디자인하는 페이지입니다.
From1을 선택한 상태에서 마우스 오른쪽 버튼을 눌러 나온 메뉴에서 속성을 선택합니다. 오른쪽에 속성창이 뜨면 상단에 보이는 이벤트 버튼을 클릭합니다.
동작 항목에서 Load를 선택한 후.. 옆에 있는 빈 공간을 더블클릭합니다.
Form1.vb에 아래와 같이 코드가 생성된 것이 보이게 됩니다.
1 2 3 4 5 | Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load End Sub End Class | cs |
DataGridView를 초기화하기 위한 내용을 추가합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | Public Class Form1 '폼이 로드 될때 호출됨 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load 'DataGridView를 선택하면 전체 한줄이 선택되게 됩니다. DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect '컬럼 2개를 생성하고 각각의 이름을 정해줍니다. DataGridView1의 상단에 위치하게 됩니다. DataGridView1.ColumnCount = 2 DataGridView1.Columns(0).Name = "이름" DataGridView1.Columns(1).Name = "주소" End Sub End Class | cs |
실행을 시켜보면 DataGridView의 상단에 헤더가 추가된 것을 볼 수 있습니다.
프로그램을 종료시키고 다시 Form1.vb[디자인]으로 돌아와서 추가 버튼을 더블클릭합니다. 그러면 Form1.vb에 아래처럼 코드가 추가됩니다.
1 2 3 | Private Sub add_Button_Click(sender As Object, e As EventArgs) Handles add_Button.Click End Sub | cs |
추가버튼을 클릭시 이름 텍스트박스와 주소 텍스트박스의 내용을 DataGridView에 추가하고 택스트박스를 비우는 코드를 추가해줍니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | '추가 버튼 클릭시 호출됨 Private Sub add_Button_Click(sender As Object, e As EventArgs) Handles add_Button.Click '공백을 입력할 수 없도록 에러처리 If name_TextBox.Text = "" Or address_TextBox.Text = "" Then MsgBox("데이터를 입력하세요") Return End If 'DataGridView의 한 줄에 추가될 데이터를 배열에 넣습니다. Dim row As String() = New String() {name_TextBox.Text, address_TextBox.Text} '배열을 DataGridView에 추가합니다. DataGridView1.Rows.Add(row) '데이터가 입력되었던 텍스트박스를 비웁니다. name_TextBox.Text = "" address_TextBox.Text = "" End Sub | cs |
실행킨 후.. 텍스트 박스에 내용을 채운 후 추가 버튼을 클릭하면 DataGridView에 추가되는 것을 확인 할 수 있습니다.
이제 입력된 내용을 수정하는 것을 추가합니다. 우선 이미 DataGirdView에 입력된 데이터를 선택시 해당 데이터들이 텍스트뷰에 입력되도록 해야 합니다.
DataGrdiView를 선택하고 오른쪽 상단에 있는 속성을 선택합니다. 마우스 하위 항목에 있는 CellClick옆에 있는 공간을 더블클릭합니다.
그러면 Form1.vb에 코드가 추가됩니다.
1 2 3 | Private Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick End Sub | cs |
셀을 선택시 해당 행의 내용을 택스트박스에 출력하기 위한 코드를 추가합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 'DataGridView1의 셀을 클릭시 호출됩니다. Private Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick If (e.RowIndex > -1) And Not (DataGridView1.SelectedRows(0).Cells(0).Value = Nothing) Then 'DataGridView1에서 선택된 행의 첫번째 셀의 값을 name_TextBox의 내용으로 합니다. name_TextBox.Text = DataGridView1.SelectedRows(0).Cells(0).Value.ToString 'DataGridView1에서 선택된 행의 두번째 셀의 값을 address_TextBox의 내용으로 합니다. address_TextBox.Text = DataGridView1.SelectedRows(0).Cells(1).Value.ToString Else name_TextBox.Text = "" address_TextBox.Text = "" End If End Sub | cs |
실행시키고 DataGridView에 값을 추가한 후, DataGridView의 셀을 선택해보면 대응되는 행의 데이터들이 텍스트박스에 입력되는 것을 볼 수 있습니다.
이제 업데이트 버튼을 더블클릭합니다. 그러면 다음처럼 From1.vb에 코드가 추가되는 코드에 텍스트 박스에 있는 내용을 DataGridView의 셀값으로 업데이트하는 코드를 추가합니다.
1 2 3 4 5 | '업데이트 버튼 클릭시 호출됩니다. Private Sub update_Button_Click(sender As Object, e As EventArgs) Handles update_Button.Click DataGridView1.SelectedRows(0).Cells(0).Value = name_TextBox.Text DataGridView1.SelectedRows(0).Cells(1).Value = address_TextBox.Text End Sub | cs |
이제 삭제 버튼을 더블클릭하여 추가되는 코드에 선택된 행을 삭제하는 코드를 작성합니다. 셀을 선택하고 삭제 버튼을 클릭하면 해당 셀이 속하는 행이 삭제됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | '삭제 버튼 클릭시 호출됨 Private Sub delete_Button_Click(sender As Object, e As EventArgs) Handles delete_Button.Click '삭제할 수 없는 셀인 경우 에러처리 If DataGridView1.SelectedRows(0).Cells(0).Value = Nothing Then Return End If Dim msgResult As MsgBoxResult = MsgBox("삭제하시겠습니까?", MsgBoxStyle.YesNo) If msgResult = MsgBoxResult.Yes Then DataGridView1.Rows.RemoveAt(DataGridView1.SelectedRows(0).Index) name_TextBox.Text = "" address_TextBox.Text = "" End If End Sub | cs |
다음은 전체 소스코드입니다.
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 | Public Class Form1 '폼이 로드 될때 호출됨 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load 'DataGridView를 선택하면 전체 한줄이 선택되게 됩니다. DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect '컬럼 2개를 생성하고 각각의 이름을 정해줍니다. DataGridView1의 상단에 위치하게 됩니다. DataGridView1.ColumnCount = 2 DataGridView1.Columns(0).Name = "이름" DataGridView1.Columns(1).Name = "주소" End Sub '추가 버튼 클릭시 호출됨 Private Sub add_Button_Click(sender As Object, e As EventArgs) Handles add_Button.Click '공백을 입력할 수 없도록 에러처리 If name_TextBox.Text = "" Or address_TextBox.Text = "" Then MsgBox("데이터를 입력하세요") Return End If 'DataGridView의 한 줄에 추가될 데이터를 배열에 넣습니다. Dim row As String() = New String() {name_TextBox.Text, address_TextBox.Text} '배열을 DataGridView에 추가합니다. DataGridView1.Rows.Add(row) '데이터가 입력되었던 텍스트박스를 비웁니다. name_TextBox.Text = "" address_TextBox.Text = "" End Sub 'DataGridView1의 셀을 클릭시 호출됩니다. Private Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick If (e.RowIndex > -1) And Not (DataGridView1.SelectedRows(0).Cells(0).Value = Nothing) Then 'DataGridView1에서 선택된 행의 첫번째 셀의 값을 name_TextBox의 내용으로 합니다. name_TextBox.Text = DataGridView1.SelectedRows(0).Cells(0).Value.ToString 'DataGridView1에서 선택된 행의 두번째 셀의 값을 address_TextBox의 내용으로 합니다. address_TextBox.Text = DataGridView1.SelectedRows(0).Cells(1).Value.ToString Else name_TextBox.Text = "" address_TextBox.Text = "" End If End Sub '업데이트 버튼 클릭시 호출됩니다. Private Sub update_Button_Click(sender As Object, e As EventArgs) Handles update_Button.Click DataGridView1.SelectedRows(0).Cells(0).Value = name_TextBox.Text DataGridView1.SelectedRows(0).Cells(1).Value = address_TextBox.Text End Sub '삭제 버튼 클릭시 호출됨 Private Sub delete_Button_Click(sender As Object, e As EventArgs) Handles delete_Button.Click '삭제할 수 없는 셀인 경우 에러처리 If DataGridView1.SelectedRows(0).Cells(0).Value = Nothing Then Return End If Dim msgResult As MsgBoxResult = MsgBox("삭제하시겠습니까?", MsgBoxStyle.YesNo) If msgResult = MsgBoxResult.Yes Then DataGridView1.Rows.RemoveAt(DataGridView1.SelectedRows(0).Index) name_TextBox.Text = "" address_TextBox.Text = "" End If End Sub End Class | cs |
전체 프로젝트 파일입니다.
DataGridView_Example.zip참고
https://www.youtube.com/watch?v=arJYVEMgZao
'Visual Basic . Net' 카테고리의 다른 글
비주얼 베이직 .Net 강좌 – 1. Hello World (0) | 2023.10.08 |
---|---|
비주얼 베이직 .Net 강좌 - 4. DataGridView에 이미지 경로와 이미지 추가하기 (0) | 2016.08.21 |
비주얼 베이직 .Net 강좌 - 3. DataGridView에 SQLite 연동하는 방법 (4) | 2016.08.21 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!