즐겁게 개발을...

개발보다 게임이 더 많이 올라오는 것 같은...

개발/C# 37

싱글 인스턴스로 프로그램 실행하기

지원 Framework: 프레임워크, .Net 6에서 확인함. "싱글 인스턴스가 뭐냐?"라는 질의 보다 이것을 왜 사용했는지부터 알아보겠습니다. 프로그램을 실행할 때 아규먼트를 받아서 처리하는 프로그램을 개발할 때, 이미 떠 있는 프로세스에 아규먼트를 전달 할 방법이 뭐가 있을까? 이 방법 이전에는 프로그램이 떠있는지 체크해서 Send Message Win32 API를 통해 아규먼트를 전달하는 방법을 사용했는데 이 경우 별도의 프로그램을 중간매개로 만들어야 했습니다. C# 프로젝트를 생성하면 program.cs가 자동생성되고 Application.Run(new Form1()); 위 코드를 사용해 폼을 띄웁니다. 프로그램이 시작된 상태에서 다시 실행파일을 실행하면 위 코드를 통해 똑같은 프로그램이 뜨겠죠...

개발/C# 2023.07.04

Pfx인증서 파일을 PC에 설치하기

괜히 Openssl 뒤지고 다녔네요. 아래처럼 4줄이면 인증서가 설치됩니다. 다만 루트 인증서(StoreName.Root)의 경우 메시지 박스가 하나 뜨네요. X509Certificate2 cert = new X509Certificate2("d:\\my_cert.pfx", "P@ssW0rd"); X509Store store = new X509Store(StoreName.TrustedPublisher); store.Open(OpenFlags.ReadWrite); store.Add(cert); 참고) X509Certificate를 사용하여 PFX 파일 설치 - .NET Framework 표준 .NET 애플리케이션에서 X509Certificate를 사용하여 PFX 파일을 설치할 때 오류가 발생합니다. 이 문서..

개발/C# 2023.06.28

폼에 모든 라벨의 ForeColor 변경하기

기존 폼 라벨에 ForeColor(전경색=폰트색)을 변경할 필요가 있었다. 디자이너에서 한땀 한땀 선택해가며 바꿔도 되고, 디자이너 소스에서 ForeColor를 모조리 변경하는 방법도 있을 수 있지만, 코드 레벨에서 하는 방법을 알아보자. private void ChangeForeColorControls(ControlCollection CtrlCollection) { foreach (Control Ctrl in CtrlCollection) { // 이 콘트롤에 하위 콘트롤이 있으면 재귀함수로 호출 if (Ctrl.Controls.Count > 0) { ChangeForeColorControls(Ctrl.Controls); } // 콘트롤 타입이 Label이면 처리 (이 부분을 응용하면 다른 컨트롤도 적용..

개발/C# 2023.06.27

C# 클래스 라이브러리 작성 시 다중 타겟 프레임워크 지원

.NET 6.0기반 클래스 라이브러리 DLL을 만들었는데 닷넷 프레임워크에서 참조 시 오류가 발생했다. 타겟 플랫폼을 다중으로 설정하는 방법을 알아보자. 클래스 프로젝트 csproj파일을 편집한다. // 기본은 로 감싸있을 건데 다중으로 설정하려면 s를 붙여야 한다. // net462는 닷넷 프레임워크 4.6.2를 지원하겠다는 내용이다. // 콜론으로 다양한 프레임워크를 지원할 수 있다. net6.0-windows;net462; .NET 6.0을 기반으로 하면 C# 10.0일텐데 기본적인 프로젝트 속성으로 인해 하위호환이 안될 수 있다. 1. 전역 Using 옵션 해제 (10.0 이상만 사용가능) 프로젝트 속성에서 "using"로 검색해보면 기본적으로 체크되어 있다. 체크해제하자. 이것의 기능은 소스에서..

개발/C# 2023.06.22

[2022.11] Enum Display name옵션으로 처리하는 방법

[2021.05] Enum을 Combobox에 값을 넣을 때 Foreach 문 활용방법 자주 사용하는 구문인데 맨날 기억이 나지 않아 예전 소스를 찾아 헤매는 것을 방지하기 위해 간단하지만 올립니다. foreach (string item in Enum.GetNames(typeof(PRODUCT_CATEGORY))) { cboProduct.Properties.Items.Add(it endev.tistory.com 요거의 확장 개념입니다. 위처럼 처리할 경우 상수를 그대로 표시하기 때문에 보기 좋지 않죠. DevExpress의 콤보박스의 경우 CustomDisplayText라는 이벤트를 통해 처리하는 것도 있는데 이 방법은 그 방법을 통하지 않는 일반적인 방식을 설명드리고자 합니다. 제가 사용하는 스킨 상수..

개발/C# 2022.11.07
1 2 3 4 5 6 ··· 8