C# 썸네일형 리스트형 TextBox의 바이트 제한에 관하여 알아보자 WinForm의 RichTextBox 혹은 TextBox에서 한글을 입력할 경우 여러 번의 TextChanged 이벤트 함수가 호출되는 현상을 알 수 있습니다. 한글 입력 시 여러 번의 TextChanged 함수가 호출 되기 때문에 특정 바이트 이상 제한하는 로직을 추가할 경우 해당 로직을 수행되지 않음을 알 수 있습니다. 이 때, 전역변수를 통해 TextChanged가 여러 번 호출 되더라도 바이트 제한 로직을 한번 수행하도록 하게 하며 입력된 텍스트의 바이트 길이가 제한하고자 하는 바이트 길이보다 클 경우 더 이상 입력되지 않도록 KeyPress 이벤트 함수에서 e.Handle = true 를 통해 KeyDown 이벤트가 발생되지 않도록 합니다. 또한, 입력된 텍스트가 제한하고자 하는 바이트보다 큰 .. 더보기 Key 이벤트 순서 및 처리 그리드 내부에서 숫자 혹은 특수문자를 입력이 되지 않는 문제가 발생하였다. Key와 관련한 이벤트를 찾아보니 KeyDown 이벤트, KeyPress 이벤트, KeyUp 이벤트가 있었다. Key 이벤트가 발생되는 순서는 KeyDown -> KeyPress -> KeyUp 이벤트 순으로 발생된다. KeyDown 이벤트는 보통 Enter Key 처리 혹은 방향키 조작을 처리하기 위해 구현하였다. KeyPress 이벤트는 각각의 숫자 혹은 문자 키를 따로 처리하기 위해 구현하였다. KeyDown -> KeyPress -> KeyUp 이벤트 순서로 처리 되기 때문에 만약 KeyDown에서만 로직을 처리해야하는 경우라면 e.Handle = true를 추가하면 KeyPress 이벤트가 발생하지 않는다. 더보기 비동기 프로그래밍(Task)에 알아보자 간혹 프로그램을 개발하다보면 비동기방식으로 API를 호출해야하는 경우가 존재합니다. ex) API 호출 시간이 오래걸릴 경우, 동시에 여러 개의 API를 호출해야하는 경우 이때, Task 객체를 사용하여 비동기방식으로 API를 호출하는데 .NET FrameWork 4.5 이상에서는 async와 await 키워드를 지원하기때문에 비동기 프로그래밍을 할 수 있습니다. 하지만 .NET FrameWork 4.0의 경우 async와 await 키워드를 지원하지 않기 때문에 Nuget 패키지에서 Mircrosoft.bcl.Build.Symbols(MIT 라이센스) 패키지를 다운받아 비동기방식으로 API를 호출하면 됩니다. for문을 통해 여러 API 호출을 병행할 때 함수의 매개변수로 전달될 값이 배열의 값을 전달.. 더보기 UAC(사용자 계정 컨트롤)로 인하여 Drag & Drop 기능 작동 안할 시 프르그램을 관리자 권한으로 실행해야하는 경우가 존재합니다. ex)시스템 드라이버 혹은 C 드라이브의 특정 폴더 내 파일을 읽고 쓸 경우 이 때 관리자 권한으로 권한 상승을 하기 위한 방안은 2가지입니다. 1. 프로세스 객체를 통해 관리자 권한으로 권한 상승 2. 프로젝트 내 매니페스트 파일을 통해 관리자 권한으로만 프로그램을 실행할 수 있도록 권한 상승 두번째 방안의 경우 주의해야할 점이 있는데요. 특정 프로그램에서 관리자 권한의 프로그램을 실행할 경우 특정 프로그램 또한 관리자 권한을 가지고 있어야 하는 단점이 존재합니다. 이슈사항 - 가상프린터드라이버에서 특정 관리자 권한의 프로그램 실행 불가능 관리자 권한으로 권한이 상승된 프로그램의 경우 윈도우 탐색기에서 프로그램 내로 Drag&Drop 기능이 보.. 더보기 이전 1 다음