728x90
728x90
SMALL

전체 글 230

C# WPF 동영상 플레이어 만들기: 마우스 휠 확대 & 클립보드 캡처 완전 정복 (HTML 예제 포함)

비디오 플레이어를 개발하면서 "마우스 휠로 영상을 확대했을 때 화면이 깨지지 않고 스크롤이 자연스럽게 생성되게 만드는 법"이나 "재생 중인 화면을 단 한 번의 클릭으로 클립보드에 바로 복사하는 기능"을 고민해 보신 적 있으신가요?C# WPF의 MediaElement, ScrollViewer, RenderTargetBitmap을 활용하면 단 몇 줄의 코드만으로 최고 수준의 CCTV·녹화 영상 분석용 플레이어를 구축할 수 있습니다. 오늘은 실무 프로젝트 소스 코드를 바탕으로 주요 기능 구현 핵심 요소를 완벽하게 정리해 드리겠습니다. 💡 핵심 구현 기능 4가지1. 마우스 휠 실시간 확대/축소 (LayoutTransform + ScrollViewer)단순 이미지 확대가 아니라 ScaleTransform을 이용..

유용한 정보 2026.08.25

C# DataGridView Header Cell Merge: WinForms 컬럼 헤더 병합 구현 예제

1. 호출부 코드 (Paint 이벤트 등록용) private void dgvView_Paint(object sender, PaintEventArgs e) { // dgvView는 Form 또는 UserControl에 놓인 DataGridView 이름으로 맞춰 사용 var infos = new List { new HeaderCellMerge.DgvHeaderCellMergeInfo { Align = StringAlignment.Center, Header = "Header Merge1", StartColIdx = 2, MergeCnt = 2 }, new HeaderCellMerge.DgvHeaderCellMergeInfo { Align = StringAlig..

유용한 정보 2026.03.31

[DB] Firebird 2.5에서 5.0 업그레이드 방법: 설치 전 권한 및 firebird.conf 설정

1단계: DB 파일 폴더 권한 확인데이터베이스 파일을 둘 폴더에는 수정 권한이 있어야 합니다. 예를 들어 글에서 제시한 경로는 C:\test\Data\이며, 이 폴더에 권한이 없다면 Firebird 5.0 설치 후 복구 단계에서 문제가 생길 수 있으므로 미리 확인하는 편이 좋아요.설정 파일 수정 (firebird.conf)Firebird 5.0 설치 후에는 firebird.conf에서 인증 관련 항목을 수정해야 합니다. 기존 2.5 계정 방식으로 접속해야 한다면 AuthServer에는 Legacy_Auth를, UserManager에는 Legacy_UserManager를 추가합니다.또한 Firebird 5.0이 실행 중이라면 먼저 Shutdown한 뒤 설정 파일을 수정하는 순서로 진행합니다. 설정 변경 후..

DB 관련 2026.02.18

[C# WinForms] 커스텀 NumericUpDown 컨트롤 구현하기 (자릿수 맞춤, 패딩 0 처리, 이미지 버튼)

1. 서론 (문제 정의 및 방문자 체류시간 확보)C# WinForms 기본 NumericUpDown 컨트롤을 사용할 때 자릿수를 맞추기 위해 앞에 0을 채우거나(예: 01, 02), 커스텀 버튼 이미지를 입히는 작업에서 불편함을 겪으셨나요?이번 포스팅에서는 자릿수 자동 패딩(Digits), 0일 때 빈값 처리(ExistsEmpty), 경계선 및 버튼 이미지 변경 기능을 지원하는 커스텀 C# 사용자 정의 컨트롤(UserControl) 전체 소스를 공유합니다.2. 핵심 기능 및 특징 요약자릿수 지정 (Digits): 숫자의 좌측 빈자리를 원하는 만큼 0으로 자동 채움 (예: D2 포맷팅)0 처리 옵션 (ExistsEmpty): 값이 0일 때 빈 문자열로 표시할지 여부 선택디자인 커스텀 (OutlineColo..

유용한 정보 2025.07.06

[C# WinForms] DataGridView 콤보박스 컬럼 완벽 가이드 (DataError 예외 처리 및 데이터 바인딩)

1. 서론 (검색 유입 및 체류시간 증대)C# WinForms 개발 중 DataGridView 내부에 콤보박스(DataGridViewComboBoxColumn)를 추가했을 때, 값이 정상적으로 표시되지 않거나 예외 오류 팝업이 무한으로 뜨는 경험을 해보셨나요?DataGridView의 콤보박스 컬럼은 일반 ComboBox와 달라 DataError 이벤트 처리 및 데이터 바인딩 구조를 정확히 이해해야 안정적으로 작동합니다.이번 포스팅에서는 디자이너 설정부터 필수 이벤트 작성, 리스트 객체 동적 바인딩 예제까지 한 번에 정리해 드립니다.2. DataGridView 콤보박스 설정 절차Step 1. 콤보박스 컬럼 추가 및 속성 설정DataGridView의 [열 편집] 메뉴에서 DataGridViewComboBox..

유용한 정보 2025.06.24

[C# WinForms] ComboBox 데이터 바인딩 시 특정 컬럼/인덱스 데이터 쉽게 가져오기 (인덱서 재정의 커스텀 컨트롤)

1. 서론 (검색 유입 및 문제 제기)WinForms 개발 시 ComboBox에 DataTable을 데이터소스(DataSource)로 바인딩해서 사용하는 경우가 매우 많습니다.하지만 기본 ComboBox는 바인딩된 목록에서 특정 행의 데이터나 선택되지 않은 다른 컬럼의 값을 가져오려면 매번 DataRowView로 형변환(Casting)을 해주어야 하는 번거로움이 있습니다.// 기존 방식: 매번 형변환 필요DataRowView rowView = cbTest.Items[i] as DataRowView;string name = rowView["NM"].ToString(); 2. 사용자 정의 ComboBox 컨트롤 소스 코드기존 ComboBox 클래스를 상속받아 인덱서(this[...])와 Select..

유용한 정보 2025.06.15

[C# WinForms] DataGridView 짝수/홀수행 배경색 및 글자색 다르게 설정하기 (AlternatingRowsDefaultCellStyle)

1. 서론 (검색 유입 및 체류시간 증대)DataGridView에 수백~수천 개의 데이터를 출력할 때, 모든 행의 배경색이 동일하면 데이터의 가독성이 떨어져 사용자가 행을 착각하는 실수가 자주 발생합니다.엑셀처럼 짝수행과 홀수행의 배경색을 교차로 지정(Zebra Striping)해 주면 데이터 시각화 성능과 UI 품질을 동시에 높일 수 있습니다.이번 포스팅에서는 AlternatingRowsDefaultCellStyle 속성을 활용해 C# 코드 한 줄로 짝수/홀수행 색상을 다르게 지정하고 해제하는 방법을 알아봅니다.2. 핵심 개념 및 속성 비교DataGridView는 기본적으로 모든 행에 DefaultCellStyle을 적용합니다. 하지만 AlternatingRowsDefaultCellStyle 속성을 설..

유용한 정보 2025.06.03

[C# WinForms] DataGridView와 DataTable 데이터 바인딩 방법 (DataPropertyName 활용)

1. 서론 (검색 유입 및 개요)WinForms 개발에서 DataGridView에 DB에서 조회한 DataTable을 바인딩할 때, 원하는 컬럼에 데이터가 제대로 매핑되지 않거나 순서가 꼬이는 경우가 있습니다.DataGridView의 각 컬럼마다 DataPropertyName 속성을 설정해주면, DataTable의 필드명과 1:1로 매칭되어 정확하고 깔끔하게 데이터를 출력할 수 있습니다.이번 포스팅에서는 DataPropertyName 설정 방법과 함께 실제 데이터 테이블을 생성하여 DataGridView에 바인딩하는 예제를 알아보겠습니다. 2. 컬럼 생성 및 DataSource 연동 설정하기DataGridView에 컬럼을 디자인 타임(속성 창) 또는 코드에서 추가할 때 가장 중요한 설정이 바로 DataP..

유용한 정보 2025.05.24
728x90
728x90
LIST