winforms
-
C# 윈폼에 아키텍처 패턴을 적용해보자! (feat. MVP, MVVM)닷넷/WinForms 2024. 2. 22. 22:26
공장에서 윈폼을 하다보면 객체지향 언어인 C#을 절차적인 언어처럼 쓰고, 막 주먹구구식으로 쓰는 경우가 태반일 것이다. 그러다 보면 유지보수가 너어무 힘들어서 윈폼 자체에 노이로제가 걸릴 수도 있다. 그러나! C#의 윈폼도 엄연히 C#의 프레임워크 중 하나인 것 뿐인데, C#은 객체지향 언어인데, 윈폼도 객체지향 적으로 짤 수는 없는 것일까? 수월한 유지보수를 위한 아키텍처 패턴과 디자인 패턴을 적용할 수 없는 것일까? 정답은 가능하다! 객체지향 적으로 짜기 위해 객체지향 설계 5원칙을 따르면 되기는 하나, 통용적인 패턴을 이용하면 보다 쉽게 짤 수가 있다. 여기서는 아키텍처 패턴을 적용 해보는 것에 대해서 설명하고자 한다. 1. 아키텍처 패턴이란? 아키텍처 패턴은 소프트웨어 설계에서 반복적으로 발생하는..
-
C# WinForms DevExpress AccordionControl 사용하기닷넷/WinForms 2023. 8. 23. 11:50
DevExpress의 AccordionControl은 사용자 인터페이스(UI)에서 네비게이션 및 그룹화된 정보를 표시하기 위해 사용되는 강력한 컨트롤입니다. 이 컨트롤은 대시보드, 패널 어플리케이션, 설정 페이지 등에서 유용하게 활용될 수 있습니다. AccordionControl은 주로 다음과 같은 특징을 갖습니다. 1. 그룹화 및 네비게이션: AccordionControl은 요소들을 그룹화하여 각 그룹의 헤더와 본문을 함께 표시합니다. 사용자는 그룹의 헤더를 클릭하거나 펼침/접힘 아이콘을 클릭하여 해당 그룹의 본문을 표시하거나 숨길 수 있습니다. 2. 커스텀 뷰: 각각의 그룹은 커스텀 뷰를 가질 수 있으며, 텍스트, 이미지, 버튼, 그리드 등 다양한 컨트롤을 포함할 수 있습니다. 3. 컨텍스트 버튼: ..
-
C# WinForms DevExpress GridControl에 체크박스 칼럼 (헤더 포함) 추가하기닷넷/WinForms 2022. 12. 12. 16:17
2022.08.25 - [프로그래밍/C# (WinForms, ASP.NET)] - C# DevExpress GridControl 열 전체 선택, 헤더에 체크박스 넣는 법 C# DevExpress GridControl 열 전체 선택, 헤더에 체크박스 넣는 법 데브익스프레스 c# Winforms 에서 GridControl의 헤더 체크박는 넣는 방법 아래와 같이 소스파일에 코딩을 한다. #region 체크 박스 그리기 - DrawCheckBox(graphics, rectangle, isChecked) /// /// 체크 박스 그리기 /// jasmintime.com 이전에 쓴 내용이 있는데 이것보다 더 간단한 방법이 존재한다. DevExpress의 GridControl에서 GridView 속성에 이미 존재하는..
-
C# WinForms DevExpress GridControl multi header (Banded Grid Views)닷넷/WinForms 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에서 레이아웃 깨지는 문제 해결 방법. 디스플레이 해상도, 텍스트 배율 안 따라게 하기닷넷/WinForms 2022. 2. 22. 17:37
사용자들이 윈폼에서 레이아웃이 깨진다고 표현하는 현상은 사용자의 디스플레이 상태가 개발 환경과 다른 경우 종종 일어날 수 있는 일이다. 해상도에 따라서 레이아웃이 깨진다면, Form 속성에 AutoScaleMode를 이용하면 깨지지 않게 할 수 있다. AutoScaleMode에서 Inherit은 클래스의 부모 확장 모드에 따라 배율을 제어한다. 부모가 없는 경우 자동 스케일링이 비활성화된다. 즉, 부모 폼이 있다면 자식 폼이 부모 폼의 AutoScaleMode를 따라간다. Font는 클래스가 사용하고 있는 글꼴의 치수에 상대적인 축척(일반적으로 시스템 글꼴)을 제어한다. 윈폼에서 AutoScaleMode는 기본적으로 Font로 설정되어 있어서 개발 도중에도 폰트를 바꾼다거나 크기를 바꾸게 되면 이에 따라..