C# 마우스 드래그 이벤트로 폼 이동하기

머리말 프로그래밍 언어를 모두 암기할 수 없다. 본인도 주로 필요할 때마다 검색을 통해 문제를 해결하면서 개발한다. 하지만 검색 결과 조금씩 다른 결과를 가리킨다면 혼란스럽다. 본 포스팅에서는 C# 개발환경에서 마우스 드래그로 폼을 이동시키는 방법에 대해서 설명하는데, 불 필요하게 전역 변수를 사용하지 않는 방법으로 소개한다. 가장 최적화된 방법이라 생각된다. 마우스 드래그로 폼 이동하기 본인의 경우 폼의 타이틀 영역을 비활성화 처리한 뒤, 모든 영역을 드래그했을 때 폼이 이동시키도록 개발을 진행하고 있었다. 그렇기 때문에 메인 폼에 MouseDown, MouseMove 두 개의 이벤트만 사용해서 구현했다. 추가된 각 이벤트에 각각 기능을 코딩해주면 되는데, MouseDown 이벤트에는 현재 마우스의 좌..

Language/C# | 2021. 3. 29. 08:00

C# 트레이 아이콘(Tray Icon) 생성 방법

머리말 컴퓨터에 지속적으로 상주해서 실행되는 프로그램을 개발하다 보면 아이콘이 트레이 영역에 표시되는 게 좋다고 판단되는 경우가 있다. 이를테면 보안 프로그램이나 시스템 모니터링과 같은 프로그램을 예로 들 수 있다. 그러한 프로그램은 대다수 프로그램 화면을 직접 열어보는 경우가 흔치 않으며, Windows 하단의 작업 표시줄에 지속적으로 노출되면 더욱 불편할 따름이다. 본 포스팅에서는 C# 개발 환경의 프로그램을 트레이 영역에 노출시키는 방법을 설명하도록 한다. C# 개발환경은 '디자인 폼'을 이용하는 스타일과 '직접 디자인을 코딩'하는 스타일로 구분할 수 있는데, C#의 강점 중 하나인 강력한 디자인 퍼포먼스를 고려해 디자인 폼을 이용하는 방법으로 설명한다. 직접 코딩하는 방법도 나쁘진 않지만 제공되는..

Language/C# | 2021. 3. 28. 03:11

C# JSON 파싱(parsing): Newtonsoft 및 System.Text.Json

머리말 본 포스팅이 C# 개발환경에서 JSON 사용방법을 설명하는 마지막 포스팅이다. 첫 번째 포스팅에서는 JSON의 배경과 구조에 대한 설명, 두 번째 포스팅에서는 직렬화 및 역직렬화에 대한 설명을 담았다. 필요하다면, 아래의 '도움이 될만한 포스팅' 영역에 링크를 남겨놓았으니 참고하길 바란다. 본 포스팅에서는 Newtonsoft.Json 라이브러리와 System.Text.Json 라이브러리에 대해 간략한 사용 방법을 설명한다. # 도움이 될만한 포스팅 C# JSON 파싱(parsing): 배경과 구조 이해 C# JSON 파싱(parsing): 직렬화 및 역직렬화 개념 C# JSON 파싱(parsing): Newtonsoft 및 System.Text.Json Newtonsoft.Json 라이브러리 Ne..

Language/C# | 2021. 3. 21. 07:40

C# JSON 파싱(parsing): 직렬화 및 역직렬화 개념

머리말 C# 개발환경에서 JSON을 다루기 위한 두 번째 포스팅이다. 첫 번째 포스팅에서는 JSON 배경과 구조에 대해서 설명했는데, 필요하다면 상단의 '도움이 될만한 포스팅'에 링크를 남겨 놓았으니 참고 바란다. 본 포스팅에서는 C# 환경에서 널리 사용되는 JSON 라이브러리를 비교한 뒤, 직렬화 및 역직렬화의 개념에 대해서 설명하도록 한다. 라이브러리 사용에 앞서, 먼저 어떤 라이브러리를 사용해야 될지 고민이 될 수 있다. 자신의 소중한 프로그램에 사용할 라이브러리인데, 아무거나 대충 사용할 수 없다. 대표적으로 사용되는 라이브러리는 두 가지 정도만 기억해도 좋다. NewtonSoft에서 배포하는 Newtonsoft.Json 라이브러리와 .NET Core 개발팀에서 배포하는 System.Text.Js..

Language/C# | 2021. 3. 21. 07:09

C# JSON 파싱(parsing): 배경과 구조 이해

머리말 본 포스팅에서는 C# 개발 환경에서 JSON 데이터를 다루는 방법에 대해 자세하게 소개한다. 다른 블로그의 내용만으로도 어느 정도 자신이 원하는 기능은 구현할 수 있다. 하지만, JSON의 개념을 먼저 이해하지 못한다면 라이브러리를 선택함에 있어서 자유롭지 못하고 특이한 예외 상황에 유연하게 대응하는데 한계가 있다. 그렇기 때문에 총 세 번의 포스팅으로 JSON에 대한 개념적인 내용을 소개할 것이며, 먼저 본 포스팅에서는 JSON에 대한 배경과 구조에 대한 내용을 소개하도록 한다. 만일, 사용 방법에 대한 요점만 필요하다면 상단의 '도움이 될만한 포스팅'의 세 번째 포스팅으로 건너뛰어도 좋다. 수십 년 동안 시스템 간 데이터를 이동하기 위한 데이터 포맷으로 XML을 사용해왔다. XML은 현재도 많..

Language/C# | 2021. 3. 21. 06:43