728x90
728x90
SMALL

전체 글 132

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

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

유용한 정보 2026.08.25

Firebird 설치·업그레이드 완벽 가이드: isql 기본 사용법부터 2.5 → 5.0 이전까지

Firebird 2.5에서 5.0으로 가는 길은 "설치해서 DB 파일을 그대로 여는 것"이 아니라 "2.5에서 gbak 백업 → 5.0에서 gbak 복원"입니다. 결론부터 말하면, ODS(파일 구조)가 바뀌어 5.0은 2.5 DB 파일을 직접 열지 못하고, 인증 방식이 바뀌어 옛 클라이언트(gds32.dll, 2.5 fbclient.dll)는 그대로 접속하지 못하므로 백업·복원과 firebird.conf 인증 설정, 클라이언트 DLL 교체 세 가지를 함께 해야 합니다.이 글은 처음 설치하고 isql로 DB를 만드는 기초부터, 운영 중인 2.5 DB를 5.0으로 옮기는 실제 순서까지 정리했습니다.목차버전별 차이 한눈에 보기Windows에 Firebird 5.0 설치isql로 DB 만들고 접속하기사용자 만들..

[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# DataGridView 고급 가이드: 콤보박스 컬럼 DataError 처리와 컬럼 헤더 병합 (WinForms)

DataGridView에서 막히는 고급 기능 두 가지를 정리합니다. 콤보박스 컬럼은 "값 목록에 없는 값"이 들어오면 DataError가 나고, 컬럼 헤더 병합은 기본 기능이 없어 직접 그려야 합니다. 두 기능을 하나의 예제 폼에 넣었고, 맨 아래 전체 소스를 붙여 넣으면 바로 실행됩니다.기본 바인딩, 행 번호, 필터 같은 기초 기능은 "C# DataGridView 완벽 가이드" 글을 먼저 보세요.목차콤보박스 컬럼 바인딩 (DataSource, DisplayMember, ValueMember)DataError 예외가 나는 이유와 해결선택 즉시 값 반영하기 (CommitEdit)한 번 클릭으로 드롭다운 열기컬럼 헤더 병합 (2단 헤더) 구현전체 예제 소스1. 콤보박스 컬럼 바인딩콤보박스 컬럼에는 데이터가 ..

[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..

C# DataGridView 완벽 가이드: 데이터 바인딩부터 행 번호·열 고정·검색 필터·스타일까지 (WinForms)

WinForms에서 DataGridView를 쓸 때 가장 많이 찾는 기능은 DataTable 바인딩, 행 번호 표시, 짝수/홀수행 색상, 열 고정, 검색 필터, 빈값 검사 여섯 가지입니다. 이 글은 이 여섯 가지를 하나의 예제 폼에 모두 넣고, 기능별로 왜 그렇게 구현하는지 정리했습니다. 맨 아래의 전체 소스를 새 WinForms 프로젝트에 붙여 넣으면 바로 실행됩니다.목차DataTable 바인딩과 DataPropertyNameDB 연동: DataSet + SqlDataAdapter로 조회와 저장짝수/홀수행 배경색 (AlternatingRowsDefaultCellStyle)행 번호 자동 표시 (RowPostPaint)열 고정 (Frozen)가로 스크롤바 숨기기와 보이기검색과 필터링 (BindingSour..

[C# WinForms] 커스텀 달력(Calendar) 만들기 1편 - 날짜/빈칸 사용자 정의 컨트롤(UserControl) 구현

1. 개요 및 목적WinForms 기본 DateTimePicker나 MonthCalendar는 디자인 커스텀이 제한적이거나, 특정 날짜 선택 이벤트 및 스타일링을 정교하게 제어하기 어렵습니다.커스텀 달력을 만들 때 가장 핵심이 되는 단위는 바로 날짜를 표시하는 셀(Cell) 컨트롤입니다.이번 포스팅에서는 달력의 공백을 채우는 빈 날짜 컨트롤(CjBlank)과, 날짜 선택 상태·색상·연/월/일 속성을 관리하는 일자 셀 컨트롤(CjDay)의 구현 코드를 공유합니다.2. 빈 날짜 컨트롤 (CjBlank)달력의 첫째 주 시작 전이나 마지막 주 끝부분처럼 날짜가 없는 빈 칸을 채워 레이아웃을 맞추기 위한 UserControl입니다.using System;using System.Collections.Generic;..

유용한 정보 2025.05.14

[clr] Window Forms 컨트롤 라이브러리 MFC에서 사용하기 사용

1. CLR (Common Language Runtime)이란?CLR은 마이크로소프트의 .NET 프레임워크에서 프로그램을 실행하는 핵심 가상 머신 환경입니다.C#, VB.NET, F# 등 다양한 언어로 작성된 코드를 공통 중간 언어(CIL)로 컴파일한 후, 이를 기계어로 바꿔 실행할 수 있도록 지원합니다.코드의 실행 관리를 비롯해 메모리 관리 (가비지 컬렉션, GC), 보안 검사, 예외 처리 등의 통합 기능을 제공합니다.2. MFC에서 Windows Forms 컨트롤 라이브러리 연동 방법1) C#에서 컨트롤 라이브러리(.dll) 생성C# Windows Forms 컨트롤 라이브러리 프로젝트를 생성하고, 필요한 사용자 정의 컨트롤을 작성한 후 빌드하여 .dll 파일을 생성합니다.2) MFC 프로젝트 생성C#..

유용한 정보 2025.05.06
728x90
728x90
LIST