티스토리 뷰
======================================================
안녕하세요 Doridori 입니다.
모두모두 정말 힘든 시기를 보내고 있는데 저희 집은 아이들이 한창 뛰어다닐 시기라 아이들이 너무 갑갑해 하는것 같아 힘드네요.
아파트라 뛰어 다니라고 할 수도 없고 . . .
와중에 아이들이 잠을 자야 준비를 하는데 안잘려고 하네요 ㅎㅎ
주저리주저리 ~! 모두 모두 힘냅시다!!
개발자는 사람들과 많이 부딧히는 직종이 아니고 공장쪽에서 개발 하는 경우는 거의 격리된 생활을 해서 일하는데 크게 타격이 없는 점은 다행인듯 합니다.
자영업 하시는 분들은 정말 힘들어 하시더라구요.
모두들 화이팅 이십니다.!!!
======================================================
42. List 조금 더 알기
Source UI) Study_42_List_Detail (UI).zip
Soruce 전체) Study_42_List_Detail.zip
이번에 준비 한 내용은 List 조금 더 알기 입니다.
예전에 List에 대해서 대충 애기하고 지나간듯 하여 "간단해서 많이 사용 되는!!" List를 조금 더 간단하게 사용 해보자 라는 의미에서 준비해 보았습니다. ^^;;
무거운 내용도 아니고 어려운 내용도 아니기 때문에 가볍게 꿀팁 몇개 알아 간다 라고 생각하시면 좋을듯 합니다.
내용이 많아 보이는데 그냥 파란색 글자만 중요하다. 정도만 생각하고 보시면 될듯 합니다.
(UI)
약간 1강을 생각하면서 만들었는데 다른 내용들 보다 List에 대해서 자주 사용 되는 함수, 사용 할 때 편하게 쓰는 법 이런 것들을 알려드리는 느낌으로 준비해 보았습니다.
저장해 놓으셨다가 필요 할 때 아~ 이거 뭐였더라 싶을때 잠시 보고 넘어가면 좋을 듯 합니다.
강의)
짧게 할려고 했는데 하다보니 또 길어지네요 ㅡㅡ;;
화면 그리는데에도 시간이 제법 소요가 되니 귀찮으신 분들은 UI를 받으시고 UI 작성 부분은 건너 뛰셔도 됩니다. (UI를 그리면서는 일부러 잡소리만 잔뜩 했네요 ^^;;; 사실 은근 긴장되서 뭐라고 했는지 기억도 잘 안납니다. 핫핫!!)
Source)
몇줄 안되는 부분이기도 하고 그중에서도 주석 달아놓은 부분이 pdf에 사용한 함수들 입니다.
가볍게 보고 이런게 있구만 하고 넘어가셔도 될듯 합니다. (괜찮다 싶은 기능만 가져다 쓰면 되쥬~ ^^)
중간에 문자열 보간은 preview 느낌으로 . . .
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 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 | 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 ListDetail { public partial class Form1 : Form { List<object> oList = new List<object>(); // Main List 전역으로 선언 // 진입점 public Form1() { InitializeComponent(); } // Button 추가 Event private void btnAdd_Click(object sender, EventArgs e) { DataAdd(); } // tboxData에 KeyDown 시 추가 Event private void tboxData_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { DataAdd(); } } // Button 삭제 Event private void btnRemove_Click(object sender, EventArgs e) { if (numPosition.Value == -1) { oList.Remove(tboxData.Text); // List 내의 해당 내용 삭제 } else { oList.RemoveAt((int)numPosition.Value); // List 내의 해당 Index 삭제 } lboxList.DataSource = oList.ToList<object>(); LboxNoCreate(); oList_DataDetail(); } // Button 변경 Event private void btnChange_Click(object sender, EventArgs e) { List<object> ListChange = new List<object>(); ListChange = oList.ConvertAll<object>(s => s.ToString().Replace(tboxChangeOld.Text, tboxChangeNew.Text)); // List의 값을 변경 해서 새로운 List를 만듬 lboxChangeList.DataSource = ListChange.ToList(); oChangeList_DataDetail(ListChange); } // ListBoxNo에 줄번호를 넣기 위한 함수 private void LboxNoCreate() { List<int> iList = (Enumerable.Repeat(0, oList.Count)).ToList<int>(); // List를 선언 하면서 초기화 (여기에서는 그렇게 필요한 부분은 아님;;) for (int i = 0; i < iList.Count; i++) { iList[i] = i + 1; } lboxNo.DataSource = iList.ToList(); } private void oList_DataDetail() { tboxList.Text = null; int iListCount = oList.Count; // List 내의 항목 크기 int ilistCapacity = oList.Capacity; // List의 메모리 할당 크기 string strListData = string.Join(", ", oList); // List의 값을 구분자를 포함한 문자로 변경 /****** 문자열 보간 ******/ //StringBuilder sb = new StringBuilder(); // StringBuilder //sb.Append("icount : " + iListCount + "\r\n"); //string steDe = string.Format("icount : {0}", iListCount); // String.Format // $@"" string strListDetail = $@" Capacity : {ilistCapacity} Count : {iListCount} Data : {strListData} "; tboxList.Text = strListDetail; } private void DataAdd() { if (numPosition.Value == -1) { oList.Add(tboxData.Text); // List 끝에 값을 추가 } else { oList.Insert((int)numPosition.Value, tboxData.Text); // List의 해당 Index 부분에 값을 추가 } lboxList.DataSource = oList.ToList<object>(); LboxNoCreate(); oList_DataDetail(); tboxData.Text = ""; } private void oChangeList_DataDetail(List<object> oChangeList) { tboxChangeList.Text = null; int iListCount = oChangeList.Count; int ilistCapacity = oChangeList.Capacity; string strListData = string.Join(", ", oChangeList); //List<object> oTEST = oChangeList.GetRange(3, 2); // List에서 해당 위치에서 지정 범위의 값을 추출 //oChangeList.Sort(); // List 정렬 string strListDetail = $@" Capacity : {ilistCapacity} Count : {iListCount} Data : {strListData} "; tboxChangeList.Text = strListDetail; } } } | cs |
'C# > C# 강좌 Winform' 카테고리의 다른 글
Doridori C# 강의 2) 44. TreeView (File Copy) (4) | 2020.04.18 |
---|---|
Doridori C# 강의 2) 43. 문자열 보간, 이스케이프 시퀀스 (0) | 2020.03.21 |
Doridori C# 강의 2) 41. User32.dll (3) (Menu Control) (0) | 2020.02.23 |
Doridori C# 강의 2) 40. User32.dll (2) (Copy&Paste) (6) | 2020.02.09 |
Doridori C# 강의 2) 39. User32.dll (Keyboard Hook) (4) | 2020.01.27 |
- Total
- Today
- Yesterday
- 맥주
- 소주
- 주말
- 술
- WinForm
- 도리도리 C#
- 보드카
- 가볼만한곳
- 모바일
- Visual Studio
- 광저우
- 나들이
- 칵테일
- 맛집
- 위스키
- 하이볼
- 막걸리
- 아이랑
- 서울
- C#
- C# 기초 강의
- 증류주
- 전통주
- C# 강좌
- C# 강의
- 와인
- 프로그램 강의
- 도리도리
- 가볼만한 곳
- 게임
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |