본문 바로가기

C#45

C# Winform - Pagination 구현하기 (여러 페이지 보여주기) 어쩌다 보니 한 과제로 여러 블로그 포스팅을 작성하고 있는 것 같은데, 해당 과제에서 요구했던 기능들이 꽤나 복잡했던 것들이라 그런 것 같다.이전에 화면 분할을 해야 했던 프로그램에서 여러 화면을 보여주기 위한 방법으로 Pagination을 사용해서 처리하는 기능이 있었다.Pagination 기능 동작 샘플 동영상화면 분할 개수에 따라서 Page가 추가되거나 줄어들거나 또, 각 Page 번호를 누르면 해당하는 화면들이 나오게끔 해야 하는 그런 문제였다. 이 문제를 해결하기 위한 방법들을 정리하고, 각 코드에 대한 설명을 블로그에 내용으로 남기고자 한다. 똑같은 기능을 구현해야 하는 다른 분들에게 조금이나마 도움이 되길 바라며...Form 디자인 방법우선, 코드를 먼저 살펴보기 전에 Pagination을 .. 2025. 4. 21.
C# Winform - 이미지 흑백 변환 (Gray Scale, RGB-YUV) 이미지를 활용한 메뉴를 구현하면서 선택한 메뉴를 제외한 나머지 이미지 메뉴들을 비활성화되는 것처럼 보이게 하기 위해 흑백 처리를 해야 하는 기능이 있었다. 동작 예시 동영상위 동영상에서 보는 것과 같이 사용자가 선택한 이미지를 제외한 나머지 이미지들은 모두 흑백 처리를 해야 하는 문제였다. 구글링을 해보니 이미지를 흑백처리 하는 것과 관련해서 다양한 방법들이 많이 존재했는데, 이 방법을 C#에서 적용해 보는 것을 정리해보려고 한다. 이미지를 흑백 처리로 변환하는 방법은 여러 가지가 존재하겠지만, 이번 포스팅에서는 크게 2가지 위주로 정리하고 개인적으로 더 서칭 해서 찾은 더 빠르게 흑백처리를 변환하는 방법을 정리를 해보겠다.흑백처리 변환의 2가지 방법은 다음과 같다.RGB 평균값으로 Gray 만들기YUV.. 2025. 4. 15.
C# Winform - Delegate 활용 열려있는 모든 Form, UserControl 디자인 변경하기 (Pub-Sub Design Pattern 활용) 화면 분할했던 프로젝트에서 열려있는 모든 화면의 디자인의 일부를 수정을 해야 하는 문제가 있었다. 디자인 변경 폼에서 원하는 컨트롤 타입을 선택하고 세부 설정을 변경하면 그 즉시 열려있는 모든 화면과 열릴 화면들의 디자인이 변경되어야 하는 문제였다.이 문제를 나는 Delegate 타입을 사용해서 해결했다. 구체적으로는 Pub-Sub Design Pattern을 조금 응용해서 풀이를 했다고 보는 것이 더 정확할 것 같다. Design Pattern 내용까지 함께 정리하기엔 내용이 너무 방대해지기에, 기회가 되면 Design Pattern 내용은 별도로 정리해 보는 것으로 하고.. 어떻게 이 문제를 해결했는지만 이번 포스팅에서 정리를 해보려고 한다.동작 예시위 동영상과 같이 열려있는 모든 화면에 바로 적용이.. 2025. 4. 9.
C# Winform - Delegate 정리해보기 (Event, Callback) C#을 사용하다 보면 쉽게 접할 수 있고, 또 많이 사용하게 되는 delegate. Google에 검색해 보면 Microsoft에서는 대리자라고 설명하고 있고, 뭔가 머리에 딱 정리가 되게끔 깔끔하게 설명을 해주고 있지는 않고 있다. 그래서, 이번 기회에 책들과 여러 자료들을 참고하면서 쉽게 순화해서 delegate를 이해할 수 있는 내용을 한번 블로그에 포스팅해보려고 한다!요즘 핫한.. 지피티씨에게 그림으로 한번 Delegate를 그려달라고 해봤다.생각보다 아주 야무지게 잘 그려줘서 감탄을 했다..! 지피티씨의 노력에 힘입어 delegate에 대해 한번 잘 정리해 보겠다.Delegate의 정의C나 C++을 사용하셨던 분들이라면 쉽게 말해 함수 포인터라고 볼 수 있다. 특정 매개 변수 목록 및 반환 형식.. 2025. 4. 9.
C# - Winform PictureBox 2개 사용해서 가로 슬라이드 애니메이션 적용 이번 포스팅은 PictureBox 2개를 사용해서 가로 슬라이딩 애니메이션 구현한 것을 정리해보려고 한다. 이 내용은 2025년 지방기능경기대회 정보기술 직종 1과제 중에 출제된 요구사항 중 하나로 해당 부분만 내용을 추려서 블로그 포스팅에 정리하려고 한다.먼저 어떻게 동작하는지 짧은 움짤로 확인하고 넘어가자.움짤로 퍼오다 보니 자연스럽게 보이지 않는데,, 1초마다 이미지가 가로로 넘어가면서 우측에 있는 정보도 함께 바뀌어야 하는 요구사항이다. 가로 슬라이드 애니메이션이 메인이다 보니, 불필요한 코드와 내용은 모두 제거하고, 가로 슬라이드 애니메이션만 정리하겠다.이번 포스팅부터는 정리 방법을 조금 다르게 해보려고 한다. 전체 코드를 먼저 보여주고, 각 코드에 대해 설명을 작성하는 것으로 해보려고 한다. .. 2025. 4. 7.
C# Winform - ComboBox ListItem 리스트 아이템 커스텀 드로잉 하기 (ListItem OwnerDrawFixed, OnDrawItem) Winform에서 자주 사용하는 컨트롤 중 하나인 ComboBox. 보통 이 ComboBox의 ListItem을 출력하는 것을 커스텀하는 경우는 거의 없다만, 일부 필요로 하는 경우가 있다. 이번에 이것과 관련된 문제를 해결을 해야 했어서, 해결한 방법을 블로그에 간단하게 정리해두려고 한다.전체를 제외한 나머지 A전자부터 D전자는 각각의 로고가 리스트 아이템에 함께 보여야 하는 기능이었다. 또한 해당 콤보박스가 하나만 사용되는 게 아니라 여러 곳에서 사용이 되어야 해서, 해결을 위해 나는 ComboBox 클래스를 상속받은 커스텀 콤보박스 클래스를 만들어서 문제를 해결했다.전체 구현 코드를 먼저 보고, 세부 설명을 함께 참고하길 바란다. 전체 코드internal class BrandComboBox : Co.. 2025. 4. 5.