TreeView, ListBox에서 또는 내 Google에서 ScrollBar를 검색하는 것으로 보이지만 ScrollBar는 컨트롤의 일부로 간주되지 않습니다.ScrollBar 위로 이동하면 TreeView MouseLeave 이벤트가 발생합니다.
저는 사용자 정의 컨트롤에 넣는 TreeView가 있으며, Dock Fill입니다. 그래서 거기에 우리의 모든 논리를 한 곳에서 관리하는 사용자 정의 TreeView 역할을합니다.
우리 프로그램의 일부에서는 MouseEnter 이벤트를 기반으로 슬라이드 아웃하고 MouseLeave 이벤트로 다시 슬라이드합니다. 그러나 현재 대체 할 타사 라이브러리의 TreeView를 사용하고 있습니다.
그래서 모든 것을 Windows TreeView로 옮겼지만 신뢰할 수있는 MouseLeave 캡처 방법을 찾지 못했습니다. 전체 TreeView, 스크롤바가 포함 된 경우에만 해당됩니다.
여러 픽셀이있는 패널에서 패널을 래핑하고 패널의 MouseLeave를 캡처하는 해킹 된 솔루션을 보았습니다.하지만이 상황에서 Microsoft가 의도 한 바가 거의 없다고 생각합니다. 즉
:
스크롤 컨트롤에 대한 MouseEnter이나하는 MouseLeave을 발생하지 않으며, 즉 스크롤 막대를 사용할 수없는 사용자 이후 사용할 수 없게 제어를 슬라이딩 MouseEnter /하는 MouseLeave를 사용합니다.
이 상황을 처리하는 가장 좋은 방법은 무엇입니까?
이것은 .net이고 WndProc 또는 WM_NCMOUSEMOVE에 대한 액세스 권한이 없습니다. –
WndProc()은 파생 클래스에서 오버로드 할 수있는 TreeView 클래스의 메서드입니다. WM_NCMOUSEMOVE는 숫자이며, 0xa0입니다. MSDN 문서를 확인하십시오. –