본문 바로가기

개발언어/C#191

[C#] Button Image 테두리(border) 없애기 Button에 배경을 이미지로 하게 되면, 1px의 border가 생긴다. 해당 border을 없애는 방법은 2가지가 있다. 첫번째 방법: Properties 창의 값 변경 (1) Properties > FlatAppearance - BorderSize값을 0으로 준다. 두번째 방법: 소스코드 변경 //버튼 테두리 없애기 btnLogin.TabStop = false; btnLogin.FlatStyle = FlatStyle.Flat; btnLogin.FlatAppearance.BorderSize = 0; [ 버튼 눌림 효과 ] 버튼 누림 효과를 넣기 위해서는 FlatStyle값에 Flat을 하면 안됩니다. 누림 효과는 Popup을 사용하면 좋습니다. FlatApprearance에 속성값을 넣어줘야 합니다... 2021. 8. 26.
[C#] 배열 생성과 동시에 전체 값 초기화 (Enumerable.Repeat) 배열 생성과 동시에 배열의 전체 값을 특정 값으로 초기화 해보자 Enumerable.Repeat 함수 - Enumerable.Repeat(초기화값, 크기); (1) int 타입의 크기 10000인 배열을 생성과 동시에 배열 전체의 값을 0으로 초기화 해보자 // 배열 생성과 동시에 값을 0 으로 초기화 int[] array = Enumerable.Repeat(0, 10000).ToArray(); (2) char 타입의 크기 1000인 배열을 생성 후 해당 배열의 전체 값을 'S'로 초기화 해보자 char[] array = new char[100]; // 배열 생성 array = Enumerable.Repeat('S', 1000).ToArray(); // 배열의 값을 'S'로 초기화 출처 : https:/.. 2021. 8. 26.
[C#] Dictionary Value 로 Class 사용하기 class 선언 public class Person { public int personNumber; public string name; public int age; public Person(int personNumber, string name, int age) { this.personNumber = personNumber; this.name = name; this.age = age; } } Dictionary dicPerson = new Dictionary(); dicPerson.Add(1001, new Person(1001, "홍길동", 36)); dicPerson.Add(1002, new Person(1002, "임꺽정", 26)); dicPerson.Add(1003, new Person(1003, .. 2021. 8. 24.
[C#] Dictionary 사용법. 기본,응용 Dictionary 기본 사용법 // 선언 Dictionary dic = new Dictionary(); // 값 추가 dic.Add("빨강", "red"); dic.Add("파랑", "blue"); // element 수 Console.WriteLine("Dictionary 수 : {0}", dic.Count); // key 체크 if (dic.ContainsKey("빨강")) Console.WriteLine("빨강이 있음"); foreach (var key in dic.Keys) { Console.WriteLine("{0} 은 영어로 {1} 입니다.", key, dic[key]); } // 이미 있는 값 변경. dic["파랑"] = "BLUE"; // red 가 한글로 뭔지 찾기 ( Value 로 K.. 2021. 8. 23.
[C#] Dictionary의 Value 값으로 Key 찾기 Dictionary Dic = new Dictionary() { {"1", "Mon"}, {"2", "Tue"}, {"3", "Thu"} }; 사전이 위와같이 있다고 가정하자 현재 Dic 의 키 "1" 은 값 "Mon"을 가지고있다. "Mon"으로 키 "1"을 찾고자 할 때에는 아래와 같이 사용하면 된다. var _key = Dic.FirstOrDefault(x => x.Value == "Mon").Key; 출처 : https://miuna3.tistory.com/81 2021. 8. 23.
[C#] class 객체 배열 new 할당 후 배열 요소 null 접근 문제 해결 1. 클래스 객체 배열 선언 후 접근 문제 Class 객체를 배열로 생성 하고 사용 하려면 값 타입 배열 생성과 다르게 배열 요소에 접근 하게 되면 null 에러가 발생 한다. class SomeClass { public int Value = 0; } SomeSomeClass[] aaa = new SomeClass[10]; aaa[0].Value = 99; // 에러 발생 null exception 여기에서 aaa[0].Value 와 같이 0번째 배열에 접근 하려면 null 포인터 예외가 발생 한다. SomeClass[] aaa = new SomeClass[10]; for (int i = 0; i < aaa.Length; i++) { aaa[i] = new SomeClass(); } aaa[0].Valu.. 2021. 8. 23.
[C#] Listview Checkbox 에 checked된 목록 가져오기 리스트뷰를 만들고 리스트뷰에 어떠한 목록들이 생성이되면, 체크한 목록만 저장하거나 가져오고 싶을때에 간단히 foreach 구문을 이용해서 체크한 것들만 가져오면 된다. foreach(ListViewItem Item in listView1.CheckedItems) { if (Item.Checked) { MessageBox.Show(Item.Text); } } 출처: https://akinokaze.tistory.com/154 2021. 8. 11.
[C#] 리스트뷰 Column Header에 체크박스 추가 및 전체선택/해제 기능 1. 리스트뷰 OwnerDraw = true로 변경 (View는 Details) 2. 전체 소스코드 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 myPractice { public partial class Form1 : Form { public Form1() { InitializeComponent(); drawListView(); } private voi.. 2021. 8. 11.
[C#] ListView Column Header에 체크박스 삽입 구글링을 해본 결과 3가지 정도의 방법으로 갈리는데, 그 중 가장 정상적으로 동작하고 깔끔한 방법이다. Owner draw를 이용하여 컬럼 헤더에 체크박스를 삽입하고, 클릭 이벤트에서 컨트롤 하는 방법이다. 타 언어를 찾아보니 체크박스를 강제로 삽입해서 그려주던데 c#은 체크박스렌더러가 따로있다. 윈도우API의 위엄 ㄷㄷㄷ 아주 잘 동작한다. c#은 윈도우 API 보는 재미가 쏠쏠한듯... 1. 컬럼 헤더 0열에 체크박스용 더미를 만든다. 텍스트는 ""로 하면 된다. 너비는 25정도가 무난하다. 2. 속성에서 CheckBoxes와 OwnerDraw를 True로 변경한다. 3. 다음의 이벤트를 등록한다. - DrawColumnHeader - DrawItem - DrawSubItem 이벤트를 줄줄이 등록하는.. 2021. 8. 11.
[C#] ListView의 체크박스(CheckBox) 추가하는 방법 C# 에서 칼럼의 첫번째에 체크박스를 그리는 방법이다. 먼저 listView 열편집(ColumnHeader 컬렉션 편집기)을 아래와 같이 첫번째 칼럼에는 텍스트는 빈공백으로 준다.열너비는 30이나 25 정도로 주면 된다. 소스코드에 직접 적어주려면 listView1.Columns[0].Width = 25; DB에서 가져온 정보를 listView 화면에 출력할 때 아래와 같이 처리를 해준다. listView1.Items.Clear(); if (R.HasRows) { int i = 0; while (R.Read()) { i = i + 1; ListViewItem lvt = new ListViewItem(); //lvt.Text = i.ToString(); // 첫번째 열은 값을 넣지 않는다. checkbox.. 2021. 8. 10.