텍스트 입력을 허용하는 C# (VS2008, .net 3.5 사용)에서 WinForms 컨트롤을 만들고 있습니다. 나는 일반적인 Windows 캐럿을 표시하기 위해 User32.dll에서 필요한 Win32 API 함수를 가져 왔으며 이것들은 모두 정상적으로 작동하지만 정확히 어떻게 표시하는지 표시하지는 않습니다.C# 프로그램에서 캐럿 잘라 내기
텍스트가 컨트롤에 공백 테두리로 표시되고이 여백을 분명히하기 위해 Graphics.SetClip()을 사용합니다. 캐럿을 같은 지역으로 클리핑하고 싶지만 클리핑 영역을 설정하는 확실한 API 함수가 없기 때문에이 작업을 수행 할 방법이 없습니다. 나는 명백한 것을 놓친 적이 있습니까?
캐럿은 그 안에있는 컨트롤 안에 잘립니다. 따라서 하나의 해결책은 테두리가없는 별도의 하위 컨트롤에 텍스트를 배치하는 것이 될 수 있다는 것을 알고 있습니다. 그러나 컨트롤의이 부분을 다시 디자인하는 것보다 간단한 방법이 있다면 먼저 살펴 보겠습니다.
미리 도움을 청하십시오!
TextBox에서 컨트롤을 파생 했습니까? 아니면 모두 직접 그렸습니까? –
처음부터 그려져 있습니다. 안타깝게도 Textbox는 관리되지 않는 Win32 컨트롤을 감싸는 비교적 얇은 래퍼이므로 기능을 수정할 수있는 부분은 제한적입니다. –