프로그래밍
-
Convert a string to an enum in C#프로그래밍/C# (WinForms, ASP.NET) 2022. 5. 10. 14:57
In .NET Core and .NET Framework ≥4.0 there is a generic parse method: Enum.TryParse("Active", out StatusEnum myStatus); This also includes C#7's new inline out variables, so this does the try-parse, conversion to the explicit enum type and initialises+populates the myStatus variable. If you have access to C#7 and the latest .NET this is the best way. Original Answer In .NET it's rather ugly (unt..
-
Visual Studio Code에서 Vue.js 사용하기 2 - 프로젝트 생성프로그래밍/WEB 2022. 4. 19. 17:28
2022.04.18 - [프로그래밍/WEB] - Visual Studio Code에서 vue.js 사용하기 - 설치 방법 Visual Studio Code에서 vue.js 사용하기 - 설치 방법 Visual Studio Code에서 vue.js를 사용하기 전에 먼저 vue.js를 설치해야 한다. 순서는 다음과 같다. 참고로, cmd 창을 열어 npm install vue 를 입력하고 엔터하면 끝이지만 Visual Studio Code에서 터미널을.. jasmintime.com 이 전 글에서 설치를 다 하였으면 프로젝트를 생성해서 간단한 사이트를 Vue.js로 만들어 보자. 터미널에서 Vue.js 프로젝트가 위치할 경로로 이동해 준 다음 (이미 해당 경로면 안 해도 된다.) vue create 프로젝트명 ..
-
Visual Studio Code에서 Vue.js 사용하기 1 - 설치 방법프로그래밍/WEB 2022. 4. 18. 11:10
Visual Studio Code에서 Vue.js를 사용하기 전에 먼저 Vue.js를 설치해야 한다. 순서는 다음과 같다. 참고로, cmd 창을 열어 npm install vue 를 입력하고 엔터하면 끝이지만 Visual Studio Code에서 터미널을 실행하는 방법이 포함되었다. Visual Studio Code에서 Terminal > New Terminal를 클릭해서 cmd창을 연다. 하단에 터미널이 뜨는데 뜨지 않는다면 아래쪽 파란색 윗부분에 마우스를 올렸을 때 마우스 커서가 Vertical Resize 아이콘으로 바뀐다면 위로 끌어올려 터미널창이 숨겨진 것을 볼 수 있다. 터미널이 cmd가 아니라면 +옆에 아래 화살표를 클릭하고, Command Prompt를 선택하여 터미널을 추가한다. cmd ..
-
DevExpress WinForms GridControl multi header (Banded Grid Views)프로그래밍/C# (WinForms, ASP.NET) 2022. 3. 21. 14:47
그룹바이를 만드는 것과 별개로 칼럼 헤더들 위에 타이틀 같은 또 하나의 헤더를 두는 방법 데브익스프레스에서는 이 또 하나의 헤더를 band라고 명명되어 있다. 혹은 1. 그리드 컨트롤을 생성한 후, Run Designer 클릭. 2. Change view -> Convert to를 클릭해서 gridView를 BandedGridView로 변경한다. 이렇게 생겼던 그리드 컨트롤이 이렇게 바뀐다. 헤더 위에 Band가 생기는 것이다. 원래 이랬던 디자이너 메뉴에는 Bands가 추가 된다. 3. Columns 메뉴에서 기존에 해왔던 대로 요구사항대로 칼럼들을 추가한다. 4. Bands 메뉴를 클릭하면 처음 생성 시 보이게 되는 화면이다. 5. Band가 여러 개인 경우에는 [Add New Band...]을 클릭..
-
C# WinForms에서 레이아웃 깨지는 문제 해결 방법. 디스플레이 해상도, 텍스트 배율 안 따라게 하기프로그래밍/C# (WinForms, ASP.NET) 2022. 2. 22. 17:37
사용자들이 윈폼에서 레이아웃이 깨진다고 표현하는 현상은 사용자의 디스플레이 상태가 개발 환경과 다른 경우 종종 일어날 수 있는 일이다. 해상도에 따라서 레이아웃이 깨진다면, Form 속성에 AutoScaleMode를 이용하면 깨지지 않게 할 수 있다. AutoScaleMode에서 Inherit은 클래스의 부모 확장 모드에 따라 배율을 제어한다. 부모가 없는 경우 자동 스케일링이 비활성화된다. 즉, 부모 폼이 있다면 자식 폼이 부모 폼의 AutoScaleMode를 따라간다. Font는 클래스가 사용하고 있는 글꼴의 치수에 상대적인 축척(일반적으로 시스템 글꼴)을 제어한다. 윈폼에서 AutoScaleMode는 기본적으로 Font로 설정되어 있어서 개발 도중에도 폰트를 바꾼다거나 크기를 바꾸게 되면 이에 따라..
-
WPF 도서, 공부 자료 정리 (MVVM 패턴 포함)프로그래밍/WPF 2021. 12. 6. 13:59
0. WPF 능력자이신 arooong님의 블로그 https://tyeom.github.io/wpf/2022/01/21/WPF-WPF-MVVM-%ED%8C%A8%ED%84%B4%EC%97%90-%EB%8C%80%ED%95%B4.html (WPF) WPF MVVM 패턴에 대해 - Arooong Blog 복잡한 프로그램일 수록 기본적인 설계단계에 있어 항상 다음과 같은 사항을 고려하지 않을 수 없습니다. 공통적 부분의 재사용성, 의존성 등 그리고 이런 고민은 어떻게 하면 효율적으로 사용 tyeom.github.io 1. WPF XAML MVVM에서부터 Prism,Reactive(Rx) Framework 개발(All Coding 과정) https://kaki104.tistory.com/631 [Future Of..
-
WPF 제목표시줄이 아닌 다른 곳을 클릭해도 윈도우를 움직이게 하는 방법, Make WPF window draggable프로그래밍/WPF 2021. 12. 3. 11:25
c# 윈폼에서는 뭔가 어렵게 작업했던 것 같은데 wpf는 마우스 이벤트 하나에 DragMove() 를 사용하면 된다. 윈도우.xaml 파일에 MouseDown 이벤트 추가 윈도우. xmal.cs 비하인드 파일에 다음과 같이 작성 private void Window_MouseDown(object sender, MouseButtonEventArgs e) { if (e.ChangedButton == MouseButton.Left) this.DragMove(); }
-
c# 부팅시 자동 시작하는 프로그램, 레지스트리에 등록 또는 삭제 방법프로그래밍/C# (WinForms, ASP.NET) 2021. 11. 30. 11:12
PC가 부팅이 된 후에 사용자가 어떠한 작업을 하지 않아도 바로 프로그램이 실행되게 설정하는 방법으로 이전에 쓴 글이 있는데 이 작업을 코드로 작성하기에는 어려운 부분이 있다. 2018.03.20 - [끄적이는/정보공유] - 윈도우 컴퓨터 시작시 *.exe 프로그램이 자동으로 실행되게 하는 방법 레지스트리 경로 SOFTWARE\Microsoft\Windows\CurrentVersion\Run 가 부팅 시 자동실행이 되는 프로그램들을 관리하는 경로이기 때문에 이 경로에 해당 실행파일을 등록 하거나 삭제하면 되므로 레지스트리에 등록하거나 삭제하는 방법은 코드로 작성하기 쉽다. C#에서 레지스트리 자동실행 경로에 프로그램을 등록하는 방법은 다음과 같다. private void SaveAutoExe() { //..
-
DevExpress SearchLookupEdit에서 그리드 뷰 설정하기프로그래밍/C# (WinForms, ASP.NET) 2021. 11. 11. 15:35
데브익스프레스에서 SearchLookupEdit의 데이터소스에 테이블 클래스 리스트를 그대로 넣으면 아래 사진과 같이 그 목록들이 그대로 나온다. 이 목록들을 수정하려면 어떻게 해야 될까? SearchLooupEdit은 콤보박스가 아니다. 따라서 위 상태에서 원하는 칼럼만 나오게 하려고, ComboBox에 있는 DisplayMember와 ValueMember를 찾을 필요는 없다. GridControl처럼 SearchLookupEdit도 디자이너 속성에서 설정하면 된다. GridControl에서는 Run Designer를 통해 들어갔다면, SearchLookupEdit은 Design View를 통해 들어간다. 그리드 디자이너 창에서 Columns 탭을 통해 그리드 뷰를 설정하면 된다. 원하는 칼럼 갯수에 ..
-
C# ChromiumWebBrowser에서 JavaScript 함수 호출과 웹에서 C# 메소드 호출하는 방법프로그래밍/C# (WinForms, ASP.NET) 2021. 8. 3. 17:58
C# 윈폼에는 기본 웹브라우저 컨트롤이 있지만 스크립트 오류가 빈번해서 프로젝트의 닷넷프레임워크 버전을 4.6 이상으로 구성할 수 있다면 크로미움웹브라우저를 사용하는 것이 매우매우 좋다. 앞서 ChromiumWebBrowser를 사용하려면 NuGet 패키지 관리에서 cefsharp를 검색한 다음 CefSharp.WinForms를 설치하면 된다. 설치가 끝나면 도구상자에 CefSharp이 자동으로 추가가 되었을 경우 도구상자에서 ChromiumWebBrowser 컨트롤을 폼 디자인에 드래그앤 드랍해서 사용한다. 도구상자에 자동으로 추가가 되지 않았다면 다음과 같이 코드로 폼에 크로미움웹브라우저 컨트롤을 추가한다. public Form1() { InitializeComponent(); InitializeCh..
-
C# 두 위도와 경도 좌표 사이의 거리를 계산 하는 방법프로그래밍/C# (WinForms, ASP.NET) 2021. 7. 19. 16:34
c#에서 두 위도와 경도 좌표 사이의 거리를 계산 하는 방법은 다음과 같다. 첫 번째 방법, NuGet 패키지에서 NEST를 설치한다. 설치 후 다음과 같이 코드를 작성한다. 참고로 단위는 미터이다. // c#에서 두 위도와 경도 좌표 사이의 거리를 계산 하는 첫 번째 방법 GeoCoordinate pin1 = new GeoCoordinate(lat1, lng1); GeoCoordinate pin2 = new GeoCoordinate(lat2, lng2); double distanceBetween = pin1.GetDistanceTo(pin2); 단, 이 방법은 닷넷프레임워크 버전을 타기 때문에 설치가 안 되는 경우 두 번째 방법을 사용하면 된다. 두 번째 방법, NEST가 설치 되지 않는 경우 다음의 ..
-
C# A리스트에서 B리스트에 있는 것을 제외하는 방법(LINQ)프로그래밍/C# (WinForms, ASP.NET) 2021. 7. 13. 11:34
다음은 C#에서 LINQ를 활용하여 A리스트에서 B리스트에 있는 것을 제외하는 방법이다. 수학적 표현으로는 차집합이다. List list = listA.Where(x=> !x.Select(y=> y.id).Contains(x.id)).ToList(); 이것을 반대로 하면 A리스트에서 B리스트에 있는 것만, 교집합이 된다. List list = listA.Where(x=> x.Select(y=> y.id).Contains(x.id)).ToList(); 그 외에도 Except, Any, SequenceEqual 등을 이용한 방법이 있으며 다음의 사이트에서 확인할 수 있다. C# 두 개의 List를 비교하는 가장 빠른 방법 c# — 두 개의 List 를 비교하는 가장 빠른 방법 두 가지 대규모 (> 50,00..
-
DevExpress GridControl 체크박스칼럼에서 체크한 것이 고정이 안 될 때, When the check is not fixed in the check column프로그래밍/C# (WinForms, ASP.NET) 2021. 7. 7. 11:00
DevExpress의 GridControl에서 칼럼 하나를 체크박스칼럼으로 만들고, 칼럼의 UnboundType을 Bound로 설정하고, FieldName이 checkcolumn이라고 하면 gridControl.DataSource = list 일때, list.checkcolumn이 있으면 bound 된 값대로 false 혹은 true를 가지게 되어 2021.06.14 - [프로그래밍/C# (WinForms, ASP.NET)] - DevExpress GridControl에서 셀 편집(SetRowCellValue)이 되지 않을 때, 체크가 안 될 때 등 앞서 포스팅 한대로 설정했다는 가정하에 체크박스칼럼의 셀에서 체크박스에 체크하면 체크하는 대로 체크를 하지 않으면 하지 않은대로 설정 된다. 그런데 바운드 ..
-
DevExpress GridControl에서 셀 편집(SetRowCellValue)이 되지 않을 때, 체크가 안 될 때 등프로그래밍/C# (WinForms, ASP.NET) 2021. 6. 14. 16:53
DataGridView 대신에 데브익스프레스에서 제공해주는 GridControl를 사용하면 편리한 점이 많아 사용하고 있다. 그런데 하나의 칼럼을 RepositoryItemCheckEdit으로 설정해 두었는데 체크하려고 클릭하면 작동을 하지 않고, 아래의 코드처럼 SetRowCellValue도 먹지 않는다. private void CheckAll() { GridColumn selectColumn = this.gridView1.Columns.ColumnByName("cSelect"); for (int i = 0; i < this.gridView1.DataRowCount; i++) { this.gridView1.SetRowCellValue(i, selectColumn, true); } } 한참을 헤맨 것 같..