윈폼
-
C# 윈폼에 아키텍처 패턴을 적용해보자! (feat. MVP, MVVM)닷넷/WinForms 2024. 2. 22. 22:26
공장에서 윈폼을 하다보면 객체지향 언어인 C#을 절차적인 언어처럼 쓰고, 막 주먹구구식으로 쓰는 경우가 태반일 것이다. 그러다 보면 유지보수가 너어무 힘들어서 윈폼 자체에 노이로제가 걸릴 수도 있다. 그러나! C#의 윈폼도 엄연히 C#의 프레임워크 중 하나인 것 뿐인데, C#은 객체지향 언어인데, 윈폼도 객체지향 적으로 짤 수는 없는 것일까? 수월한 유지보수를 위한 아키텍처 패턴과 디자인 패턴을 적용할 수 없는 것일까? 정답은 가능하다! 객체지향 적으로 짜기 위해 객체지향 설계 5원칙을 따르면 되기는 하나, 통용적인 패턴을 이용하면 보다 쉽게 짤 수가 있다. 여기서는 아키텍처 패턴을 적용 해보는 것에 대해서 설명하고자 한다. 1. 아키텍처 패턴이란? 아키텍처 패턴은 소프트웨어 설계에서 반복적으로 발생하는..
-
C# WinForms에서 레이아웃 깨지는 문제 해결 방법. 디스플레이 해상도, 텍스트 배율 안 따라게 하기닷넷/WinForms 2022. 2. 22. 17:37
사용자들이 윈폼에서 레이아웃이 깨진다고 표현하는 현상은 사용자의 디스플레이 상태가 개발 환경과 다른 경우 종종 일어날 수 있는 일이다. 해상도에 따라서 레이아웃이 깨진다면, Form 속성에 AutoScaleMode를 이용하면 깨지지 않게 할 수 있다. AutoScaleMode에서 Inherit은 클래스의 부모 확장 모드에 따라 배율을 제어한다. 부모가 없는 경우 자동 스케일링이 비활성화된다. 즉, 부모 폼이 있다면 자식 폼이 부모 폼의 AutoScaleMode를 따라간다. Font는 클래스가 사용하고 있는 글꼴의 치수에 상대적인 축척(일반적으로 시스템 글꼴)을 제어한다. 윈폼에서 AutoScaleMode는 기본적으로 Font로 설정되어 있어서 개발 도중에도 폰트를 바꾼다거나 크기를 바꾸게 되면 이에 따라..
-
C# 폼에서 제목표시줄을 클릭했을 때 클릭이벤트가 발생되게 하는 방법닷넷/WinForms 2021. 5. 13. 18:12
Form에서 Click 이벤트든 Mouse 이벤트든 폼을 클릭했을 때 제목표시줄을 클릭하는 건 반응을 안 한다. 다음 코드를 추가하면 폼에서 제목표시줄을 클릭했을 때의 상황을 코딩할 수 있다. const int WM_NCLBUTTONDOWN = 0x00A1; protected override void WndProc(ref Message m) { base.WndProc(ref m); // no client area if (m.Msg == WM_NCLBUTTONDOWN) { //select tittle area only If (){ this.Cursor = new Cursor(Cursor.Current.Handle); MessageBox.Show("Click"); //} } } 참고로 이 코드는 제목표시줄을..
-
C# 윈폼을 단순하지만 예쁜 디자인으로 탈바꿈 해주는 메트로폼 feat.Visual Studio에서 Metro UI Framework 추가하기닷넷/WinForms 2019. 3. 4. 14:37
비주얼 스튜디오에서 기본적인 C# 윈도우폼을 만들면 아래와 같이 회색풀하다. =예쁘지가 않다. 이런 윈폼을 예쁘게 꾸미기 위해 여러 아이콘과 이미지를 구해 꾸미곤 했는데 그러다 보면 코딩은 기본이고 거기에 원하는 이미지를 찾거나 만들어 배치하느라 시간이 배로 들었다. 혹은 라이센스를 구매해서 데브나 텔레릭 등의 UI를 사용해야 한다. (회사가.....) 윈폼대신 무료이거나 비용이 적으면서 쉽게 구성할 수 있는 쓸만한게 어디 없을까? 세상에 Windows 운영체제가 버전이 올라가면서 특히 윈도우 앱을 위해 발전한 Metro 디자인이 있었다. 위에 윈폼을 메트로폼으로 바꾸면 아래와 같은 화면으로 바뀐다. =단순하지만 예쁘다. 자 그럼 이것을 어떻게 적용할까? 1. 첫 번째: MetroFramework 설치하..