개발언어/C#191 [C#] FolderBrowserDialog 보다 괜찮은 폴더 선택 화면 - CommonOpenFileDialog 윈도우 프로그램을 개발할 파일 또는 폴더를 불러올 때 사용할 수 있는 도구 상자를 제공합니다. 파일을 선택하기 위해서는 OpenFileDialog 도구 상자를 사용하고, 폴더를 선택하기 위해서는 FolderBrowserDialog 도구 상자를 사용합니다. 이 중에서 폴더를 선택하기 위한 FolderBrowserDialog 은 사용하기에 불편한 점이 있습니다. 폴더 경로를 트리 구조로만 확인할 수 있고 텍스트로 확인할 수 없을 뿐만 아니라, 폴더 경로를 복사했다고 하더라도 붙여넣을 수 있는 방법이 없어서 트리구조에서 일일이 찾아야 합니다. 그래서 생각한 것이 OpenFileDialog 를 사용해서 폴더를 선택하는 방법이 있을까 하고 구글 검색을 하게 되었습니다. 검색 결과 OpenFileDialog 와 비.. 2020. 12. 22. [C#] 폴더 내 파일 목록 가져오기(하위폴더 포함여부) 안녕하세요. 윈도우 폼에서 폴더를 선택했을 때 파일 목록을 가져오는 방법에 대해 알아보겠습니다. 우선 프로그래밍을 하기 전에 어떤 내용을 만들지 정리해 볼께요. 1. 윈도우 폼에 하위폴더 포함 여부를 선택할 수 있는 체크박스를 추가한다 2. 버튼을 추가하여 버튼을 클릭하면 폴더를 선택할 수 있는 창이 나타나도록 설정한다. 3. 폴더 선택을 완료하면 하위폴더 포함 여부에 따라 파일 리스트를 출력한다. 그럼 위 내용대로 진행해 보겠습니다. 1. Visual Studio(2017 기준) 를 실행하고 새로운 프로젝트를 생성합니다. 상단 메뉴의 파일(F) - 새로 만들기(N) - 프로젝트(P) 를 선택합니다. 좌측 메뉴에 Visual C# - Windows 클래식 바탕화면을 선택하고 가운데 메뉴에 Windows .. 2020. 12. 22. [C#] Dictionary 사용 예제 dictionary는 키와 밸류 쌍으로 값을 보유하고 있는 것 (web 에서 많이 쓰는 Json이라고 보면 됨) dictionary[키] 로 값을 불러 올 수 있음. 1.dictionary 에 값 추가 Dictionary dictionary = new Dictionary(); dictionary.add("cat",2); 2. Contians 사용하기 containsKey("키") 로 값이 있는지 없는지 판단하여 boolean값 반환 if(dictionary.ContainsKey("키") ---- boolean 값 반환 { int value = dictionary["apple"]; Console.WriteLine(value); } 3. tryGetValue() 사용하기 tryGetValue메소드를 사용하여.. 2020. 12. 22. [C#] 키(Key)와 값(Value)을 가진 Dictionary 사용 방법 및 예제 C#에서는 키와 값을 세트로 저장할 수 있는 연상 배열로 Dictionary가 있습니다. 값을 저장할 때는 키(Key)가 중복되지 않도록 주의해야 합니다. Dictionary 기본 사용 방법 Dictionary 클래스를 사용하기 위해서는 using System.Collections.Generic 으로 먼저 선언을 해줘야 합니다. ・선언 Dictionary 선언 방법입니다. Dictionary 변수명 = new Dictionary() 또는 아래와 같은 방법으로도 선언할 수 있습니다. var 변수명 = new Dictionary() ・선언 및 초기화 Dictionary를 선언하면서 초기화도 같이할 수 있습니다. var 변수명 = new Dictionary() { {Key0, Value0}, {Key1, Va.. 2020. 12. 22. [C#] Dictionary<> foreach, for 루프 C++에서는 map C#에서는 Dicrionary로 사용되는 컨테이너. foreach문의 개념만 알고 있다면 Dictionary를 돌리면서 key 와 value를 얻어오는 과정은 어렵지 않다. 가장 기본적인 내용부터 보자면 Dictionary 컨테이너의 foreach 변수(?)는 KeyValuePair다. foreach(KeyValuePair itemsin Dic) { Console.WriteLine("{0} , {1}", items.Key, items.Value); } 근데 여기서 주의해야 할 점은, foreach문 안에서 원본 Dictionart에 해당하는 Dic의 Key와 Value값을 수정하려고 하면 에러가 난다. 즉, 억지로 편집하려고 하면 안된다. 예를 들어서, 이런식으로. foreach(Ke.. 2020. 12. 22. [C#] ListView 선택시 레코드값 받아오기 ListView lv = (ListView)sender; string test = lv.FocusedItem.SubItems[0].Text; int indexnum; indexnum = listView1.FocusedItem.Index; //선택된 아이템 인덱스 번호 얻기 string test= listView1.Items[indexnum].SubItems[0].Text; //인덱스 번호의 n번째 아이템 얻기 리스트뷰의 SelectedIndexChanged 함수 안에 코딩하면 선택될때마다 선택된 아이템이 얻어진다 위의 둘다 같은기능을 동작함 전부가져오려면 foreach (int i in listView1.SelectedIndices) { MessageBox.Show(listView1.Items[i].Te.. 2020. 12. 22. [C#] ESC로 창닫기 특정 키를 눌러서 이벤트를 발생시킬때 Form의 이벤트에서 KeyDown을 찾아서 private void Form_KeyDown(object sender, KeyEventArgs e) { if(e.KeyCode == Keys.Escape) { this.Close(); } } 이러한 코드를 작성하면 될것이라는 생각을 하기 쉽습니다. 하지만 이코드는 원하는대로 작동하지 않습니다. 우리가 원하는대로 작동하게 하려면 해당 폼의 클래스에서 ProcessCmdKey를 오버라이딩 해야합니다. protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if(keyData == Keys.Escape) { this.Close(); return true; .. 2020. 12. 18. [C#] 에서 마우스 휠 이벤트 발생시키기 C# 에서 마우스휠 이벤트를 사용할려고하면 이벤트 속성창에서 찾을수 없다. 안되는것이 아니라 직접 넣어주어야 하기 때문이다. (이벤트를 등록시켜주고) this.MouseWheel += new MouseEventHandler(Mouse_Wheel); (이벤트 실행시 실행할 코드를 넣어주면된다) private void Mouse_Wheel(object sender, MouseEventArgs e) { if ((e.Delta / 120) > 0) { MessageBox.Show("업") } else { MessageBox.Show("다운"); } } 출처 : https://ou2u4for.tistory.com/49 2020. 12. 11. [C#] 도구상자에 없는 MainMenu 버튼 추가하기 도구 상자를 열고 내부 아무 곳이나 마우스 오른쪽 단추로 클릭한 후 "항목 선택"을 선택합니다. 대화 상자가 로드되고 나타나면 MainMenu가 보일 때까지 아래로 스크롤합니다. 도구 상자에 추가하면 기본 메뉴 표시줄이 나타납니다! (도구상자에 전부 표시되는것이 아니니.. 필요한것이 있으면 아래처럼 추가하자) 1. 도구 상자를 열고 내부 아무 곳이나 마우스 오른쪽 단추로 클릭한 후 "항목 선택"을 선택 2. 스크롤을 쭉내려 MainMenu를 선택하고 [확인] 버튼을 누른다 3. MainMenu가 추가된다. 출처 : https://stackoverflow.com/questions/2778109/standard-windows-menu-bars-in-windows-forms 2020. 12. 7. [C#] 내문서 경로 가져오기 path에 내문서 경로 가져오기. string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); 출처: https://itmin.tistory.com/159 [jj.mandu blog] 2020. 11. 30. 이전 1 ··· 14 15 16 17 18 19 20 다음